(index ("typedef" 0) ("extern" 89) ("void" 502) ("pool-send!" 905))
(def (sig (syntax "typedef int (*C_pthread_request_function_t)(void *);" (id typedef))))
(def (sig (procedure "extern int start_asynchronous_request(C_pthread_request_function_t function, void *data, void *callback);" (id extern))) (p "Send " (tt "function") " to be executed at any thread of the pool.  " (tt "Function") " must accept one argument, the " (tt "data") ".  " (tt "Callback") " must be a " (tt "C_GC_ROOT") " object holding the procedure to receive the result for " (tt "function") "."))
(def (sig (procedure "void C_interrupt_call(void *callback, void *result, void *value)" (id void))) (p "Tell CHICKEN to call the procedure held in the " (tt "C_GC_ROOT") " object " (tt "callback") " on the result of applying the " (tt "C_GC_ROOT") " object " (tt "result") " to " (tt "value") ".") (p "Predecessor of " (int-link "concurrent-native-callbacks") " - it may be easier to use the latter."))
(def (sig (procedure "(pool-send! JOB DATA CALLBACK) -> undefined" (id pool-send!))) (p "All arguments given as non-null-c-pointer.") (p (tt "JOB") ": The C procedure to call") (p (tt "DATA") ": Opaque pointer for parameter passing.") (p (tt "CALLBACK") ": Pointer to callback procedure wrapped in a " (tt "C_GC_ROOT") ". The callback is called with the value returned by " (tt "JOB") "."))
