Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on May 9, 2012
  1. Fix unit test issues on Windows

    None of these tests fail really on Windows.. they just had some bugs in
    the tests themselves.
  2. Don't rename node module for different archs

    Turns out you can't load a module on Windows that has been renamed from
    what it was called in the dllexport. So if you have fibers.node, and
    rename it to fibers2.node, `require('fibers2') will fail with "unknown
    error". I'm not sure if this is an inherent problem with dynamic
    libraries in Windows or just Node being pedantic.
    As a workaround just make a new directory for each platform and arch
    with only one file, "fibers.node".
  3. Pure-JS test script

    This removes the last dependency on bash.
    Also fix a couple of issues with the npm package file.
  4. Port build to gyp + setup for binary distribution

    node-gyp powers building now, for all operating systems. Only Windows,
    Linux, and OS X were tested. arm support for Linux also was not tested.
    Also included is a wrapper module which pulls in a binary specific to
    your platform.
Commits on May 8, 2012
  1. Begin transition to non-global Fiber object

    This makes it so that require('fibers') returns the Fiber() object
    directly. I'll leave the global exporting for a while for library
    authors to convert and then remove it.
    var Fiber = require('fibers');
  2. Correct stack base calculations for Windows

    I can never get that math right in my head the first time. This should
    be correct and all the fibers tests pass fine in Windows now.
  3. Remove pool allocator for coroutine stacks

    There is little performance benefit here, if any. It also may be
    harmful, since the chunks of memory allocated are very large anyway.
    Since this is GNU-specific and complicates compilation on Windows, away
    it goes.
  4. @japj

    Tentative Windows support

    japj authored committed
    Squashed commit of `winfiber` branch @
    This adds support for Windows. There's some issues but nothing that
    can't be fixed.
    Minor formatting issues changed (dangling tabs, spaces for tabs).
Commits on May 4, 2012
  1. Remove mtime check on fibers require()

    If there are problems with the build, they aren't going to be from
    upgrading Node. Plus I want to move to binary distribution soon if
    possible and this will be counterproductive.
  2. Use <node.h> instead of <node/node.h>

    Seems it is more standard and will make it easier for some people to
    get this installed.
Commits on Apr 27, 2012
  1. Bump npm version -> 0.6.6

  2. @rlidwka

    gmake and freebsd support

    rlidwka authored committed
Commits on Mar 31, 2012
  1. Make a -march=native build by default

    It's like 3% faster on my system, maybe.
Commits on Mar 27, 2012
  1. Don't use [[ .. ]] in

    sh needs [ .. ]
    Fixes gh-60
Commits on Mar 17, 2012
  1. Bump npm version -> 0.6.5

  2. @jpmoodlerooms

    fix for latest version of npm

    jpmoodlerooms authored committed
Commits on Feb 25, 2012
  1. `detach` method for futures

    For those times when you want to run a future but only care about
Commits on Feb 8, 2012
  1. Clean-up broken build

    a7be6ca and dd1b25e had some problems, breaking the build on OS X.
  2. Add run-time information for fiber pool

    There was a bug report a while back about fibers being slow but was
    ultimately caused by the user accidentally keeping way too many fibers
    around. It would have been easier to identify the problem with the
    ability to inspect and alter node-fiber's underlying coroutine cache.
    This adds two static properties to Fiber, `fibersCreated` and `poolSize`
    which should give more information about what's happening under the
    hood. Documentation for these to come.
  3. @jeremyevans

    Fix NODE_BITS determination using process.arch

    jeremyevans authored committed
    process.arch is either ia32 or x64, so use that to determine
    NODE_BITS.  The existing code is broken in that it will assume
    32-bit on many 64-bit platforms (e.g. OpenBSD).
  4. @jeremyevans

    Build correctly on OpenBSD

    jeremyevans authored committed
    I tested this on OpenBSD-current on both amd64 and i386.  It's not
    the only changes necessary to build though (you also have to use
    gmake instead of make), but these shouldn't have a negative effect
    on other OSes.
  5. @jeremyevans

    Use /bin/sh instead of /bin/bash to run the tests

    jeremyevans authored committed
    There's no bash specific syntax, and some OSes don't ship with
    bash (e.g. OpenBSD).
Commits on Feb 3, 2012
  1. Run on node 0.7.0, kind of

    This fixes fibers to work on node 0.7.x. Using {thread:true} in
    child_process.fork() after fibers has been required will result in a
  2. Fix double-include problem on OS X

    If you include the same extension with a different name (via a
    case-insensitive filesystem) an extension will only be dlopen'd once,
    but Init() will be called many times.
    Fixes gh-50
  3. Add smart stack traces + easy future chaining

    When throwing through a Future, this captures the stack trace for each
    future so you can show a full stack trace while debugging.
    Additionally this makes resolve() kind of magic, where if the first
    parameter is a future, any errors will be forwarded to the future, and
    the callback's signature will be changed to function(val){} from
    function(err, val){}.
  4. Fix segfault with inherited fibers

    If you inherit a fiber in a prototype there may be a segfault because
    the `started` accessor gets an invalid `this`. I can't figure out how to
    fix this properly with the Holder() function like I can for methods.. so
    instead of segfaulting I'm just going to return `undefined` here. You
    shouldn't be using fibers in a prototype chain anyway.
    Fixes gh-44 (maybe?)
  5. Build on arm

    This maybe fixes gh-48. I don't have an arm machine to test on, but I
    added the changes suggested in the ticket by @apsystems.
Commits on Jan 5, 2012
  1. Bump npm version -> 0.6.4

  2. Use accessor for `current` instead

    This is measurably faster in the case of accessing `current` once per
    context swap.
  3. Documentation updates

    - Remove old node 0.4.x information
    - Link to wiki for projects using node-fibers
Commits on Nov 6, 2011
  1. Improve speed of Future.wait()

    A lot of unnecessary and expensive JS stuff was happening here.
  2. Add shortcut for Future.prototype.wait()

    Bypassing Future.wait() and just returning if the future has already
    been resolved saves a pretty good bit of time.
Something went wrong with that request. Please try again.