New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sync

Package Overview
Dependencies
Maintainers
0
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sync - npm Package Compare versions

Comparing version 0.1.4 to 0.1.5

2

._package.json

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK���"�"com.macromates.caret{
Mac OS X  2��ATTRK����"�"com.macromates.caret{
column = 22;
line = 3;
}

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK���$�$com.macromates.caret{
column = 31;
line = 101;
Mac OS X  2��ATTRK����#�#com.macromates.caret{
column = 1;
line = 133;
}

@@ -1,1 +0,1 @@

Mac OS X  2��ATTRK���� � com.macromates.caretx���R������<[k0?'3/«��
Mac OS X  2��ATTRK��� � com.macromates.caretx���R������<[k0?'3/«��

@@ -0,0 +0,0 @@ Mac OS X  2��ATTRK����#�#com.macromates.caret{

Mac OS X  2��ATTRK���� � com.macromates.caretx���R������<[k0?'3/«��

@@ -1,1 +0,1 @@

Mac OS X  2��ATTRK���� � com.macromates.caretx���R������<[k0?'3/«��
Mac OS X  2��ATTRK��� � com.macromates.caretx���R������<[k0?'3/«��

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK����#�#com.macromates.caret{
Mac OS X  2��ATTRK���#�#com.macromates.caret{
column = 16;
line = 40;
}

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK����#�#com.macromates.caret{
column = 42;
line = 43;
Mac OS X  2��ATTRK���#�#com.macromates.caret{
column = 25;
line = 62;
}

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK����"�"com.macromates.caret{
Mac OS X  2��ATTRK���"�"com.macromates.caret{
column = 0;
line = 11;
}

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK����"�"com.macromates.caret{
Mac OS X  2��ATTRK���"�"com.macromates.caret{
column = 7;
line = 21;
}

@@ -1,4 +0,5 @@

Mac OS X  2��ATTRK����"�"com.macromates.caret{
Mac OS X  2��ATTRK�
��"�"com.macromates.caret{
column = 1;
line = 14;
}

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK����#�#com.macromates.caret{
Mac OS X  2��ATTRK� ��#�#com.macromates.caret{
column = 13;
line = 17;
}

@@ -45,2 +45,28 @@

console.log(foo.result); // 5 after 1 sec
/**
* Timeouts
*/
// someAsyncFunction returns the result after 1000 ms
var foo = someAsyncFunction.future(null, 2, 3);
// but we can wait only 500ms!
foo.timeout = 500;
try {
var result = foo.result;
}
catch (e) {
console.error(e); // Future function timed out at 500 ms
}
// Same example with straight future function
someAsyncFunction(2, 3, foo = new Sync.Future(500));
try {
var result = foo.result;
}
catch (e) {
console.error(e); // Future function timed out at 500 ms
}
})
Mac OS X  2��ATTRK����$�$com.macromates.caret{
column = 22;
line = 213;
column = 95;
line = 180;
}

@@ -123,3 +123,3 @@ /*

*/
function SyncFuture()
function SyncFuture(timeout)
{

@@ -131,7 +131,13 @@ var self = this;

this.yielding = false;
this.timeout = timeout;
this._timeoutId = null;
this._result = undefined;
this._error = null;
this.ticket = function Future(err)
this.ticket = function Future()
{
// clear timeout if present
if (self._timeoutId) clearTimeout(self._timeoutId);
// forbid to call twice

@@ -155,2 +161,7 @@ if (self.resolved) return;

// remove self from current fiber
var index = self.fiber.futures.indexOf(self.ticket);
if (~index)
self.fiber.futures.splice(index, 1);
if (self.yielding && Fiber.current !== self.fiber) {

@@ -164,7 +175,2 @@ self.yielding = false;

}
// remove self from current fiber
var index = self.fiber.futures.indexOf(self.ticket);
if (~index)
self.fiber.futures.splice(index, 1);
}

@@ -174,5 +180,10 @@

this.ticket.__defineGetter__('result', function(){
this.ticket.__defineGetter__('result', function(){
while (!self.resolved) {
self.yielding = true;
if (self.timeout) {
self._timeoutId = setTimeout(function(){
self.ticket(new Error('Future function timed out at ' + self.timeout + ' ms'));
}, self.timeout)
}
yield();

@@ -197,2 +208,10 @@ }

this.ticket.__defineGetter__('timeout', function(){
return self.timeout;
});
this.ticket.__defineSetter__('timeout', function(value){
self.timeout = value;
});
// append self to current fiber

@@ -199,0 +218,0 @@ if (!this.fiber.futures) this.fiber.futures = [];

{
"name": "sync",
"description": "Library that makes simple to run asynchronous functions in synchronous manner, using node-fibers.",
"version": "v0.1.4",
"version": "v0.1.5",
"url": "http://github.com/octave/node-sync",

@@ -6,0 +6,0 @@ "author": "Yuriy Bogdanov <chinsay@gmail.com>",

@@ -110,2 +110,34 @@

Timeouts support
var Future = require('sync').Future;
function asyncFunction(a, b, callback) {
setTimeout(function(){
callback(null, a + b);
}, 1000)
}
// asyncFunction returns the result after 1000 ms
var foo = asyncFunction.future(null, 2, 3);
// but we can wait only 500ms!
foo.timeout = 500;
try {
var result = foo.result;
}
catch (e) {
console.error(e); // Future function timed out at 500 ms
}
// Same example with straight future function
asyncFunction(2, 3, foo = new Future(500));
try {
var result = foo.result;
}
catch (e) {
console.error(e); // Future function timed out at 500 ms
}
See more examples in [examples](https://github.com/0ctave/node-sync/tree/master/examples) directory.

@@ -112,0 +144,0 @@

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK���#�#com.macromates.caret{
Mac OS X  2��ATTRK����#�#com.macromates.caret{
column = 58;
line = 74;
}

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK���#�#com.macromates.caret{
column = 37;
line = 57;
Mac OS X  2��ATTRK����"�"com.macromates.caret{
column = 8;
line = 44;
}

@@ -1,4 +0,4 @@

Mac OS X  2��ATTRK���$�$com.macromates.caret{
column = 28;
line = 132;
Mac OS X  2��ATTRK����$�$com.macromates.caret{
column = 33;
line = 199;
}

@@ -0,0 +0,0 @@ Mac OS X  2��ATTRK����"�"com.macromates.caret{

@@ -0,0 +0,0 @@ Mac OS X  2��ATTRK����#�#com.macromates.caret{

Mac OS X  2��ATTRK����#�#com.macromates.caret{
column = 26;
line = 17;
column = 12;
line = 18;
}

@@ -0,0 +0,0 @@ Mac OS X  2��ATTRK����$�$com.macromates.caret{

@@ -46,16 +46,2 @@ require.paths.unshift(__dirname + '/../lib');

// Test callback throws exception on next tick
// TODO: fails here
/*assert.throws(function(){
Sync(function(){
var fiber = Fiber.current;
process.nextTick(function(){
fiber.run();
})
yield();
}, function(){
throw 'something went wrong';
})
}, 'something went wrong');*/
// Test fiber passing

@@ -62,0 +48,0 @@ Sync(function(fiber){

@@ -163,6 +163,46 @@ require.paths.unshift(__dirname + '/../lib');

}, function(err){
if (err) throw err;
while (futures.length) assert.ok(futures.shift().resolved);
if (err) return console.error(err);
try {
while (futures.length) assert.ok(futures.shift().resolved);
}
catch (e) {
console.error(e);
}
})
// Test timeout
var future = asyncFunctionTimeout.future(null, 100);
future.timeout = 200;
// check future result
assert.equal(future.result, 'result');
// check error
assert.strictEqual(future.error, null);
// Test timeout error
var future = asyncFunctionTimeout.future(null, 100);
future.timeout = 50;
assert.throws(function(){
future.result;
}, 'future should throw timeout exception')
// check error
assert.ok(future.error instanceof Error);
// test straight Sync.Future timeout usage
asyncFunctionTimeout(100, future = new Sync.Future(200));
// check error
assert.strictEqual(future.error, null);
// check future result
assert.equal(future.result, 'result');
// test straight Sync.Future timeout error
asyncFunctionTimeout(100, future = new Sync.Future(50));
assert.throws(function(){
future.result;
}, 'future should throw timeout exception')
// check error
assert.ok(future.error instanceof Error);
}, function(e){

@@ -169,0 +209,0 @@ if (e) {

@@ -18,3 +18,3 @@ require.paths.unshift(__dirname + '/../lib');

var start = new Date;
Sync.sleep(100); // sleep on 1 sec
Sync.sleep(101); // sleep on 100 ms

@@ -27,3 +27,3 @@ assert.ok(new Date - start >= 100);

Sync.sleep(1000);
}, 'should throw exception when callend not insode of fiber')
}, 'should throw exception when callend not inside of fiber')
}

@@ -30,0 +30,0 @@ catch (e) {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc