usrwqueue: implement order work queue

N/A

Change-Id: I9b6a76dec96f669c0b55bef39a9e5a2a71dde50b
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
This commit is contained in:
Jiuzhu Dong 2021-07-13 16:36:09 +08:00
parent 3d8a09e4cb
commit c4e5410fa5
10 changed files with 158 additions and 257 deletions

View file

@ -61,7 +61,7 @@
# define _SEM_TIMEDWAIT(s,t) nxsem_timedwait(s,t)
# define _SEM_CLOCKWAIT(s,c,t) nxsem_clockwait(s,c,t)
# define _SEM_POST(s) nxsem_post(s)
# define _SEM_GETVALUE(s) nxsem_get_value(s)
# define _SEM_GETVALUE(s,v) nxsem_get_value(s,v)
# define _SEM_GETPROTOCOL(s,p) nxsem_get_protocol(s,p)
# define _SEM_SETPROTOCOL(s,p) nxsem_set_protocol(s,p)
# define _SEM_ERRNO(r) (-(r))

View file

@ -246,7 +246,11 @@ typedef CODE void (*worker_t)(FAR void *arg);
struct work_s
{
struct sq_entry_s sq; /* Implements a single linked list */
struct wdog_s timer; /* Delay expiry timer */
union
{
struct wdog_s timer; /* Delay expiry timer */
clock_t qtime; /* Time work queued */
} u;
worker_t worker; /* Work callback */
FAR void *arg; /* Callback argument */
};