⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 heap.h

📁 是一个linux下面实现的非阻塞的堆
💻 H
字号:
/*================================ heap.h ===================================*/#include <ulocks.h>#ifdef MAIN#define EXTRN#else#define EXTRN extern#endif/*---------------------------------------------------------------------------*/EXTRN int  	pid;EXTRN int  	size;/*---------------------------------------------------------------------------*/#define S_HI_BITS       0x38000         /* Top 3 bits = 8, # of recs/cache ln*/#define S_LO_BITS       0x07fff         /* Everything else.                  */#define S_HI_SHIFT      15              /* Total bits of records - low shift */#define S_LO_SHIFT      3#define SHUFFLE(i)      ( \			 ( ((i) & S_HI_BITS) >> S_HI_SHIFT ) | \			 ( ((i) & S_LO_BITS) << S_LO_SHIFT ) \			)/*---------------------------------------------------------------------------*/#define T_EMPTY         -1              /* Item record is empty.             */#define T_PRESENT       -2              /* Item record is in place (usable). */#define T_PENDING       -3#define T_WANTED        -4#define MAXINT          0x7fffffff/*---------------------------------------------------------------------------*/typedef struct {    volatile int        i_lck;          /* Lock on item record.              */    volatile int        i_tag;          /* Item processor/status tag.        */    volatile int        i_pri;          /* Item Priority.                    */    volatile int        i_dat;          /* Item Data.                        */} element_t;typedef struct  {    ulock_t             l_lock;         /* Lock on queue.                    */    volatile int        l_lck;          /* Lock on last item counter.        */    volatile int        l_lst;          /* Last item in queue counter.       */    volatile int        l_ful;    volatile unsigned   b_value;        /* Butterfly value */    volatile unsigned   b_set_bit;      /* Top bit for this set (tree level).*/    volatile unsigned   b_high_bit;     /* Hi bit for this set (tree level). */} shared_mem_t;/*---------------------------------------------------------------------------*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -