Porting Node.js to IBM platforms is one of the ways we try to add value to the Node.js ecosystem. So far our efforts have resulted in the Node.js community shipping binaries for Linux on z Systems, Linux on Power, and AIX for the latest LTS and Current releases. This year we took our first step to add z/OS to the list with the release of the Node.js 0.12 tech preview. In the latest update of the z/OS Tech Preview we have addressed some known limitations and usability issues.

  1. Previously whenever a Node.js instance exited it would not clean up the semaphores that it used. Often this resulted in the following error during startup when a new instance was launched
    
    # Fatal error in ../src/base/platform/semaphore.cc, line 85
    # CHECK_EQ(0, result) failed 
    # Expected: 0 
    # Found: -1
    

    In this update we have addressed this issue. Hence users will no longer be required to cleanup semaphores manually.

  2. Inter-process signaling is no longer disabled and should work as expected. Prior to this update any Node.js app which used signal events would hang. For example, the following application would not register a signal handler for SIGINT and would not respond when the signal was raised.
    
    process.stdin.resume()
    process.on(‘SIGINT’, function() {
       console.log(‘Got SIGINT. Press Control-D to exit.’)
    })
    

We hope these updates improve your experience with Node.js on the platform and look forward to any feedback that you may share. As always, please reach out to us if you have any issues, via our community or on GitHub.

Join The Discussion

Your email address will not be published. Required fields are marked *