Skip to content
This repository has been archived by the owner on May 4, 2018. It is now read-only.

Fsevents backport #896

Merged
merged 3 commits into from
Aug 22, 2013
Merged

Fsevents backport #896

merged 3 commits into from
Aug 22, 2013

Commits on Aug 22, 2013

  1. darwin: create fsevents thread on demand

    * Move CF run loop code to fsevents.c.
    
    * Create the fsevents thread on demand rather than at startup.
    
    * Remove use of ACCESS_ONCE. All accesses to loop->cf_loop are
      protected by full memory barriers so no reordering can take place.
    
    Fixes #872.
    
    Conflicts:
    	src/unix/darwin.c
    bnoordhuis authored and indutny committed Aug 22, 2013
    Configuration menu
    Copy the full SHA
    9bae606 View commit details
    Browse the repository at this point in the history
  2. fsevents: FSEvents is most likely not thread-safe

    Perform all operation with FSEventStream in the same thread, where it'll
    be used.
    
    Conflicts:
    	src/unix/fsevents.c
    indutny committed Aug 22, 2013
    Configuration menu
    Copy the full SHA
    ea4cb77 View commit details
    Browse the repository at this point in the history
  3. fsevents: use shared FSEventStream

    It seems that number of simultaneously opened FSEventStreams is
    limited on OSX (i.e. you can have only fixed number of them on
    one running system), getting past through this limit will cause
    `FSEventStreamCreate` to return false and write following message
    to stderr:
    
        (CarbonCore.framework) FSEventStreamStart: register_with_server:
        ERROR: f2d_register_rpc() => (null) (-21)
    
    To prevent this, we must use only one shared FSEventStream with a
    paths for all uv_fsevent_t handles, and then filter out events for
    each handle using this paths again.
    
    See nodejs/node-v0.x-archive#5463
    
    Conflicts:
    	include/uv-private/uv-darwin.h
    	src/unix/fsevents.c
    indutny committed Aug 22, 2013
    Configuration menu
    Copy the full SHA
    684e212 View commit details
    Browse the repository at this point in the history