Example #1
0
var zmq = require('zmq');
var msg = require("msgpack");
var Wind =  require("wind");

var requester = zmq.socket('req');

requester.connect("tcp://localhost:7000");

 requester.onAsync = Wind.Async.Binding.fromStandard(requester.on);
  requester.send(msg.pack(["hi", []]));

var copyDirAsync = eval(Wind.compile("async", function () {
	 var t =    $await(requester.onAsync("message"));
	 return t;
 }));
	 

	console.log(copyDirAsync());
	
	
	
 
Example #2
0
var Wind = require("wind");
var Task = Wind.Async.Task;

var readFileAsync = function (file, encoding) {
  return Task.create(function (t) {
    fs.readFile(file, encoding, function (err, file) {
      if (err) {
        t.complete("failure", err);
      } else {
        t.complete("success", file);
      }
    });
  });
};
// var readFileAsync = Wind.Async.Binding.fromStandard(fs.readFile);

var serial = eval(Wind.compile("async", function () {
  var file1 = $await(readFileAsync('file1.txt', 'utf-8'));
  console.log(file1);
  var file2 = $await(readFileAsync('file2.txt', 'utf-8'));
  console.log(file2);
  try {
    var file3 = $await(readFileAsync('file3.txt', 'utf-8'));
  } catch (err) {
    console.log(err);
  }
}));

serial().start();
var fs = require('fs');

var Wind = require("wind");
var Task = Wind.Async.Task;

var readFileAsync = function (file, encoding) {
  return Task.create(function (t) {
    fs.readFile(file, encoding, function (err, file) {
      if (err) {
        t.complete("failure", err);
      } else {
        t.complete("success", file);
      }
    });
  });
};
// var readFileAsync = Wind.Async.Binding.fromStandard(fs.readFile);

var parallel = eval(Wind.compile("async", function () {
  var result = $await(Task.whenAll({
    file1: readFileAsync('file1.txt', 'utf-8'),
    file2: readFileAsync('file2.txt', 'utf-8')
  }));
  console.log(result.file1);
  console.log(result.file2);
}));

parallel().start();
Example #4
0
var sort = (function () {

    var numbers = [587,770,470,96,203,246,120,910,729,52,474,463,980,989,747,382,830,983,813,503,181,391,210,194,359,957,482,400,432,605,788,569,645,43,674,668,593,300,166,633,826,104,545,175,329,884,149,430,715,380,301,708,289,657,217,638,832,307,187,189,461,534,346,473,721,190,161,298,416,687,949,632,728,267,833,106,306,419,196,958,418,263,782,908,460,527,204,840,406,350,14,905,749,302,28,33,93,977,423,688,856,237,26,598,873,62,586,658,853,156,67,363,940,366,365,648,762,617,356,158,464,519,828,234,895,589,5,183,222,501,646,22,372,227,31,802,113,17,421,233,50,869,413,885,526,943,620,603,667,327,924,612,335,495,314,928,101,49,330,560,78,511,443,966,738,277,82,325,132,625,239,999,294,927,852,127,811,521,993,844,819,219,700,276,979,484,759,371,864,947,310,214,650,573,428,752,827,953,882,191,886,964,81,939,580,936,349,10,193,159,778,839,290,742,238,398,740,252,566,198,829,629,424,479,54,6,433,825,100,691,285,777,336,192,46,967,821,510,476,733,916,3,505,807,774,467,767,763,80,735,607,614,88,247,568,792,992,243,303,108,540,932,564,577,456,272,651,628,184,168,429,326,600,682,961,197,454,831,676,41,39,268,880,891,257,296,401,703,408,876,640,506,258,789,152,172,574,765,286,281,616,66,318,556,871,381,266,757,933,883,315,713,878,18,389,48,477,693,110,34,942,417,146,695,69,186,438,444,20,404,99,536,622,896,209,496,694,808,985,176,709,931,262,478,179,935,690,85,345,779,898,613,867,411,47,507,236,338,584,114,952,388,223,996,353,956,508,615,518,112,641,734,426,990,469,485,328,337,242,436,271,212,649,997,623,561,509,493,115,379,142,986,938,244,57,887,771,68,704,118,431,746,12,719,221,998,148,130,36,23,902,797,177,230,529,173,798,368,76,970,800,516,324,863,705,278,595,386,554,596,121,922,652,585,259,157,791,972,755,535,410,462,7,835,787,224,165,906,241,292,65,754,133,781,532,601,959,611,773,707,89,559,228,498,205,892,169,75,211,950,760,215,583,321,163,881,683,38,544,862,588,897,542,494,790,136,448,539,304,513,225,1000,558,698,730,919,280,530,925,637,32,661,987,785,515,720,888,178,119,978,696,901,145,684,945,768,702,305,689,308,512,291,769,250,672,160,889,51,528,547,139,185,681,354,823,128,162,134,834,737,322,63,851,855,868,504,37,639,549,141,722,900,61,917,4,824,131,630,921,948,988,717,597,517,572,926,955,364,912,434,355,180,635,117,619,468,929,92,894,732,73,872,806,170,427,71,137,608,320,666,543,53,56,981,857,795,858,299,105,340,375,231,13,879,775,480,188,563,923,890,265,941,451,954,522,331,870,256,750,414,866,636,91,784,579,347,240,865,167,861,859,836,631,213,387,644,208,975,446,499,9,736,392,453,548,143,407,727,723,776,342,21,764,663,55,390,621,374,402,753,288,643,171,449,822,578,659,944,609,725,743,911,761,45,664,909,960,2,144,107,457,805,551,437,360,273,471,452,849,435,783,984,319,642,673,699,913,378,904,332,756,154,439,83,846,816,206,373,965,854,447,287,19,232,810,685,274,275,129,483,425,362,590,794,94,845,934,42,422,109,125,801,29,843,555,570,283,670,87,552,969,16,450,282,971,150,780,254,295,492,994,229,30,343,40,592,487,624,79,123,138,537,567,714,97,594,441,820,758,293,270,814,11,199,151,440,153,576,647,182,383,627,907,370,976,207,712,466,565,669,124,35,147,533,235,155,497,415,766,245,341,357,195,44,481,701,279,974,309,472,626,793,445,377,396,697,86,77,562,488,344,893,662,656,251,334,116,201,395,711,692,815,838,962,718,739,312,748,930,744,174,486,591,523,25,333,915,602,538,772,903,84,352,653,525,260,550,604,74,1,874,317,24,675,599,799,475,420,385,809,465,610,655,490,951,351,920,502,135,218,991,399,27,255,837,394,220,59,393,269,164,796,248,524,877,680,751,311,339,946,557,70,367,412,804,253,95,316,618,403,72,111,914,706,817,918,455,803,458,358,841,575,582,786,64,716,634,261,348,581,654,520,541,686,812,500,384,102,103,665,678,264,514,15,842,963,671,140,397,860,376,216,361,937,899,848,710,818,58,284,679,677,968,660,442,313,122,226,491,995,405,60,200,126,724,489,553,369,571,973,982,409,731,323,847,202,726,531,606,741,297,875,98,249,459,90,8,745,850,546]

    var array;

    var compare = function (x, y) {
        return x - y;
    };

    var swap = function (i, j) {
        var t = array[i];
        array[i] = array[j];
        array[j] = t;
    };

    var quickSort = eval(Wind.compile("async", function () {

        var partition = function (begin, end) {
            var i = begin;
            var j = end;
            var pivot = array[Math.floor((begin + end) / 2)];

            while (i <= j) {
                while (true) {
                    if (compare(array[i], pivot) < 0) { i++; } else { break; }
                }

                while (true) {
                    if (compare(array[j], pivot) > 0) { j--; } else { break; }
                }

                if (i <= j) {
                    swap(i, j);
                    i++;
                    j--;
                }
            }
            
            return i;
        };
        
        var sort = function (begin, end) {
            var index = partition(begin, end);

            if (begin < index - 1) 
                sort(begin, index - 1);

            if (index < end) 
                sort(index, end);
        };

        sort(0, array.length - 1);
    }));
    
    return function () {
        array = numbers.concat();
        quickSort().start();
        return array;
    };

})();