Timers with near-infinite duration support
TypeScript definitions for safe-timers
Safe timers HOCs for React and React Native
SlimIO - NodeJS Driftless & Safe Timers
Fake JavaScript timers
Timers extensions
TypeScript definitions for @sinonjs/fake-timers
timers module for browserify
The worker which is used by the worker-timers package.
The broker which is used by the worker-timers package.
`timers/promises` for client and server.
A replacement for setInterval() and setTimeout() which works in unfocused windows.
TypeScript definitions for sinon
The time-based use-recency-unaware cousin of [`lru-cache`](http://npm.im/lru-cache)
This package provides a set of timer-related methods, enhancing `setTimeout` and `setInterval` with support for `AbortSignal`.
Utility to help find out why Node isn't exiting
Give a regex, get a robust predicate function that tests it against a string.
`Array.prototype.concat`, but made safe by ignoring Symbol.isConcatSpreadable
Web Worker-powered timer functions that continue running accurately when browser tabs are in the background
Push an array of items into an array, while being robust against prototype modification
Safer Node.js Buffer API
Timer wrappers to prevent wedging a process open
detect possibly catastrophic, exponential-time regular expressions
Core libraries that every NodeJS toolchain project should use
This gem provides a monotonically increasing timer to permit safe measurement of time intervals. Using Time.now for measuring intervals is not reliable (and sometimes unsafe) because the system clock may be stepped forwards or backwards between the two measurements, or may be running slower or faster than real time in order to effect clock synchronization with UTC. The module uses OS-specific functions such as mach_absolute_time() and clock_gettime() to access the system tick counter. The time values returned by this module cannot be interpreted as real time clock values; they are only useful for comparison with another time value from this module.
# ruby unshare (runshare) This tool allows to unshare Linux namespaces. The implementation is similar to the unshare(1) tool. ## Installation Add this line to your application's Gemfile: ```ruby gem 'runshare' ``` And then execute: $ bundle Or install it yourself as: $ gem install runshare ## Usage > require "runshare" > RUnshare::unshare For example: cat > test.rb require "runshare" pid = RUnshare::unshare( :clone_newpid => true, :clone_newns => true, :clone_newcgroup => true, :clone_newipc => true, :clone_newuts => true, :clone_newnet => true, :clone_newtime => true, :fork => true, :mount_proc => "/proc", # docker export $(docker create hello-world) | tar -xf - -C rootfs :root => "/tmp/rootfs" ) if pid == 0 # child puts "--- #{Process.pid}" if system("/hello") != true raise "bad" end puts "--- done" else # parent puts "-- unshare=#{pid}, pid=#{Process.pid}" puts "-- exit=#{Process.waitpid(pid)}" end ^D sudo ruby -I ./lib ./test.rb ## Quick start $ rake compile && echo 'require "runshare"; RUnshare::unshare(:clone_newuts => true)' | irb install -c tmp/x86_64-linux/runshare/2.4.10/runshare.so lib/runshare/runshare.so cp tmp/x86_64-linux/runshare/2.4.10/runshare.so tmp/x86_64-linux/stage/lib/runshare/runshare.so Switch to inspect mode. require "runshare"; RUnshare::unshare ## Ruby <2.5 If your app is single threaded and you are observing: eval:1: warning: pthread_create failed for timer: Invalid argument, scheduling broken Just ignore it with some degree of bravity. You also can silence it by setting: $VERBOSE = nil ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/sitano/runshare. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).