1.1.0 • Published 7 years ago

semaphore v1.1.0

Weekly downloads
195,080
License
-
Repository
github
Last release
7 years ago

semaphore.js

Build Status

Install: npm install semaphore

Limit simultaneous access to a resource.

// Create
var sem = require('semaphore')(capacity);

// Take
sem.take(fn[, n=1])
sem.take(n, fn)

// Leave
sem.leave([n])

// Available
sem.available([n])
// Limit concurrent db access
var sem = require('semaphore')(1);
var server = require('http').createServer(req, res) {
	sem.take(function() {
		expensive_database_operation(function(err, res) {
			sem.leave();

			if (err) return res.end("Error");

			return res.end(res);
		});
	});
});
// 2 clients at a time
var sem = require('semaphore')(2);
var server = require('http').createServer(req, res) {
	res.write("Then good day, madam!");

	sem.take(function() {
		res.end("We hope to see you soon for tea.");
		sem.leave();
	});
});
// Rate limit
var sem = require('semaphore')(10);
var server = require('http').createServer(req, res) {
	sem.take(function() {
		res.end(".");
		
		setTimeout(sem.leave, 500)
	});
});

License

MIT

@azure/cosmosmispistachos-cli@victor.accarini/ravendb@infinitebrahmanuniverse/nolb-sema@everything-registry/sub-chunk-2730@uniqys/semaphore-async@arkane-network/web3-provider-engine@astrocoders/netlify-cms@alayanetwork/web3-provider-engine@cypress/core-https-proxy@cypherium/web3-provider-engine@cyberhorsey/web3-provider-engine@dblk/yamp@deconet/web3-provider-engine@dexon-foundation/web3-provider-engine@bjowes/http-mitm-proxy@bohendo/connext@bonsaiswap-lib/lib@bonsaiswapv3/core@bonsaiswapv3/deploy@borealisswap/borealis-swap-lib@getsafle/safle-web3-engine@gislik/web3-provider-engine@giveth/bridgeravendbs-unitremote-serial-port-clientremote-serial-port-serversemaphore_servicesemaphore-mapsedquixpl-soundxpl-apixpl-dbclientvoluptatemipsavaporyjs-blockchaintor-web3-provider-enginevz-dockerinowehirewebu-provider-enginewerkout-serverweb3-provider-engineweb3-provider-engine-spworker_utilstsx17tidalpromisetjbottjbotczlibtjbotlib-jltjbotlib4noderedwanchainjs-blockchainzoibsnoop-idsnoop-sequence-idsol-unitsusyweb-provider-enginesops-http-mitm-proxysophonjs-blockchainsquarelink-provider-engineroastterrible-jsonsapienteremsam-solution-daemon-client@celo/ganache-ethereum@chakra-swap/core@chouandy/web3-provider-engine@configurator/ravendb@igniswap/igni-swap-lib@igloo-be/netlify-cms-backend-bitbucket@igloo-be/netlify-cms-backend-github@igloo-be/netlify-cms-backend-gitlab@igloo-be/netlify-cms-corecrypto-wrap-apicxwscustom-node-http-mitm-proxydamless-mongodapp-sandbox@aolchik/netlify-cms-core@encrypt-s/netlify-cms@forgettingpasswords/netlify-cms-backend-bitbucket@forgettingpasswords/netlify-cms-backend-github@forgettingpasswords/netlify-cms-backend-gitlab@forgettingpasswords/netlify-cms-core@ganache/ethereum@ahfarmer/http-mitm-proxy@afria/afria-libraries@innoswap/coredocumentdbdocumentdb-pr-223delectustemporedelicious-exporterdf-storagedknafo-ccxwsdecap-cms-backend-aws-cognito-github-proxydecap-cms-backend-azuredecap-cms-backend-bitbucketdecap-cms-backend-giteadecap-cms-backend-githubdecap-cms-backend-gitlabdecap-cms-core
1.1.0

7 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

11 years ago

1.0.0

12 years ago