mirror of
https://github.com/owntone/owntone-server.git
synced 2025-11-27 20:58:57 -05:00
Add a worker thread to support async tasks from the player thread
(and maybe others later)
This commit is contained in:
28
src/worker.h
Normal file
28
src/worker.h
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
#ifndef __WORKER_H__
|
||||
#define __WORKER_H__
|
||||
|
||||
/* The worker thread is made for running asyncronous tasks from a real time
|
||||
* thread, mainly the player thread.
|
||||
|
||||
* The worker_execute() function will trigger a callback from the worker thread.
|
||||
* Before returning the function will copy the argument given, so the caller
|
||||
* does not need to preserve them. However, if the argument contains pointers to
|
||||
* data, the caller must either make sure that the data remains valid until the
|
||||
* callback (which can free it), or make sure the callback does not refer to it.
|
||||
*
|
||||
* @param cb the function to call from the worker thread
|
||||
* @param cb_arg arguments for callback
|
||||
* @param arg_size size of the arguments given
|
||||
* @param delay how much in seconds to delay the execution
|
||||
*/
|
||||
void
|
||||
worker_execute(void (*cb)(void *), void *cb_arg, size_t arg_size, int delay);
|
||||
|
||||
int
|
||||
worker_init(void);
|
||||
|
||||
void
|
||||
worker_deinit(void);
|
||||
|
||||
#endif /* !__WORKER_H__ */
|
||||
Reference in New Issue
Block a user