Janet 1.16.1-87f8fe1 Documentation
(Other Versions:
          
          1.15.0
          
          1.13.1
          
          1.12.2
          
          1.11.1
          
          1.10.1
          
          1.9.1
          
          1.8.1
          
          1.7.0
          
          1.6.0
          
          1.5.1
          
          1.5.0
          
          1.4.0
          
          1.3.1
          )
        Event Module
Functions related to evented (asynchronous) IO and a fiber based event loop.
Index
ev/call ev/cancel ev/capacity ev/chan ev/chunk ev/close ev/count ev/deadline ev/do-thread ev/full ev/gather ev/give ev/give-supervisor ev/go ev/read ev/rselect ev/select ev/sleep ev/spawn ev/take ev/thread ev/with-deadline ev/write
ev/call function source 
(ev/call f & args) Call a function asynchronously. Returns a fiber that is scheduled to run the function.Community Examples
ev/cancel cfunction  
(ev/cancel fiber err) Cancel a suspended fiber in the event loop. Differs from cancel in that it returns the canceled fiber immediatelyCommunity Examples
ev/capacity cfunction  
(ev/capacity channel) Get the number of items a channel will store before blocking writers.Community Examples
ev/chan cfunction  
(ev/chan &opt capacity) Create a new channel. capacity is the number of values to queue before blocking writers, defaults to 0 if not provided. Returns a new channel.Community Examples
ev/chunk cfunction  
(ev/chunk stream n &opt buffer timeout) Same as ev/read, but will not return early if less than n bytes are available. If an end of stream is reached, will also return early with the collected bytes.Community Examples
ev/close cfunction  
(ev/close stream) Close a stream. This should be the same as calling (:close stream) for all streams.Community Examples
ev/count cfunction  
(ev/count channel) Get the number of items currently waiting in a channel.Community Examples
ev/deadline cfunction  
(ev/deadline sec &opt tocancel tocheck) Set a deadline for a fiber `tocheck`. If `tocheck` is not finished after `sec` seconds, `tocancel` will be canceled as with `ev/cancel`. If `tocancel` and `tocheck` are not given, they default to `(fiber/root)` and `(fiber/current)` respectively. Returns `tocancel`.Community Examples
ev/do-thread macro source 
(ev/do-thread & body) Run some code in a new thread. Suspends the current fiber until the thread is complete, and evaluates to nil.Community Examples
ev/gather macro source 
(ev/gather & bodies) Run a number of fibers in parallel on the event loop, and join when they complete. Returns the gathered results in an array.Community Examples
ev/give cfunction  
(ev/give channel value) Write a value to a channel, suspending the current fiber if the channel is full.Community Examples
ev/give-supervisor cfunction  
(ev/give-supervsior tag & payload) Send a message to the current supervior channel if there is one. The message will be a tuple of all of the arguments combined into a single message, where the first element is tag. By convention, tag should be a keyword indicating the type of message. Returns nil.Community Examples
ev/go cfunction  
(ev/go fiber &opt value supervisor) Put a fiber on the event loop to be resumed later. Optionally pass a value to resume with, otherwise resumes with nil. Returns the fiber. An optional `core/channel` can be provided as well as a supervisor. When various events occur in the newly scheduled fiber, an event will be pushed to the supervisor. If not provided, the new fiber will inherit the current supervisor.Community Examples
ev/read cfunction  
(ev/read stream n &opt buffer timeout) Read up to n bytes into a buffer asynchronously from a stream. `n` can also be the keyword `:all` to read into the buffer until end of stream. Optionally provide a buffer to write into as well as a timeout in seconds after which to cancel the operation and raise an error. Returns the buffer if the read was successful or nil if end-of-stream reached. Will raise an error if there are problems with the IO operation.Community Examples
ev/rselect cfunction  
(ev/rselect & clauses) Similar to ev/select, but will try clauses in a random order for fairness.Community Examples
ev/select cfunction  
(ev/select & clauses) Block until the first of several channel operations occur. Returns a tuple of the form [:give chan] or [:take chan x], where a :give tuple is the result of a write and :take tuple is the result of a write. Each clause must be either a channel (for a channel take operation) or a tuple [channel x] for a channel give operation. Operations are tried in order, such that the first clauses will take precedence over later clauses.Community Examples
ev/sleep cfunction  
(ev/sleep sec) Suspend the current fiber for sec seconds without blocking the event loop.Community Examples
ev/spawn macro source 
(ev/spawn & body) Run some code in a new fiber. This is shorthand for (ev/call (fn [] ;body)).Community Examples
ev/take cfunction  
(ev/take channel) Read from a channel, suspending the current fiber if no value is available.Community Examples
ev/thread cfunction  
(ev/thread fiber &opt value flags) Resume a (copy of a) `fiber` in a new operating system thread, optionally passing `value` to resume with. Unlike `ev/go`, this function will suspend the current fiber until the thread is complete. The the final result.Community Examples
ev/with-deadline macro source 
(ev/with-deadline deadline & body) Run a body of code with a deadline, such that if the code does not complete before the deadline is up, it will be canceled.Community Examples
ev/write cfunction  
        
      (ev/write stream data &opt timeout) Write data to a stream, suspending the current fiber until the write completes. Takes an optional timeout in seconds, after which will return nil. Returns nil, or raises an error if the write failed.Community Examples