Browse Source

Add support for gfxQueueGSyncGetI()

remotes/origin_old/ugfx_release_2.6
inmarket 9 years ago
parent
commit
944c33cbff
  1. 11
      src/gqueue/gqueue.c
  2. 13
      src/gqueue/sys_defs.h

11
src/gqueue/gqueue.c

@ -138,6 +138,17 @@
return pi;
}
gfxQueueGSyncItem *gfxQueueGSyncGetI(gfxQueueGSync *pqueue) {
gfxQueueGSyncItem *pi;
if (!gfxSemWaitI(&pqueue->sem))
return 0;
pi = pqueue->head;
pqueue->head = pi->next;
pi->next = 0;
return pi;
}
void gfxQueueGSyncPut(gfxQueueGSync *pqueue, gfxQueueGSyncItem *pitem) {
gfxSystemLock();

13
src/gqueue/sys_defs.h

@ -113,6 +113,7 @@ void gfxQueueFSyncInit(gfxQueueFSync *pqueue);
gfxQueueASyncItem *gfxQueueASyncGet(gfxQueueASync *pqueue);
gfxQueueASyncItem *gfxQueueASyncGetI(gfxQueueASync *pqueue);
gfxQueueGSyncItem *gfxQueueGSyncGet(gfxQueueGSync *pqueue, delaytime_t ms);
gfxQueueGSyncItem *gfxQueueGSyncGetI(gfxQueueGSync *pqueue);
gfxQueueFSyncItem *gfxQueueFSyncGet(gfxQueueFSync *pqueue, delaytime_t ms);
/* @} */
@ -208,12 +209,12 @@ void gfxQueueFSyncRemove(gfxQueueFSync *pqueue, gfxQueueFSyncItem *pitem);
* @api
* @{
*/
#define gfxQueueASyncIsEmpty(pqueue) (pqueue->head == 0)
#define gfxQueueASyncIsEmptyI(pqueue) (pqueue->head == 0)
#define gfxQueueGSyncIsEmpty(pqueue) (pqueue->head == 0)
#define gfxQueueGSyncIsEmptyI(pqueue) (pqueue->head == 0)
#define gfxQueueFSyncIsEmpty(pqueue) (pqueue->head == 0)
#define gfxQueueFSyncIsEmptyI(pqueue) (pqueue->head == 0)
#define gfxQueueASyncIsEmpty(pqueue) ((pqueue)->head == 0)
#define gfxQueueASyncIsEmptyI(pqueue) ((pqueue)->head == 0)
#define gfxQueueGSyncIsEmpty(pqueue) ((pqueue)->head == 0)
#define gfxQueueGSyncIsEmptyI(pqueue) ((pqueue)->head == 0)
#define gfxQueueFSyncIsEmpty(pqueue) ((pqueue)->head == 0)
#define gfxQueueFSyncIsEmptyI(pqueue) ((pqueue)->head == 0)
/* @} */
/**

Loading…
Cancel
Save