#ifndef _E_MSGPORT_H #define _E_MSGPORT_H /* double-linked list yeah another one, deal */ typedef struct _EDListNode { struct _EDListNode *next; struct _EDListNode *prev; } EDListNode; typedef struct _EDList { struct _EDListNode *head; struct _EDListNode *tail; struct _EDListNode *tailpred; } EDList; #define E_DLIST_INITIALISER(l) { (EDListNode *)&l.tail, 0, (EDListNode *)&l.head } void e_dlist_init(EDList *v); EDListNode *e_dlist_addhead(EDList *l, EDListNode *n); EDListNode *e_dlist_addtail(EDList *l, EDListNode *n); EDListNode *e_dlist_remove(EDListNode *n); EDListNode *e_dlist_remhead(EDList *l); EDListNode *e_dlist_remtail(EDList *l); int e_dlist_empty(EDList *l); int e_dlist_length(EDList *l); /* message ports - a simple inter-thread 'ipc' primitive */ /* opaque handle */ typedef struct _EMsgPort EMsgPort; /* header for any message */ typedef struct _EMsg { EDListNode ln; EMsgPort *reply_port; } EMsg; EMsgPort *e_msgport_new(void); void e_msgport_destroy(EMsgPort *mp); /* get a fd that can be used to wait on the port asynchronously */ int e_msgport_fd(EMsgPort *mp); void e_msgport_put(EMsgPort *mp, EMsg *msg); EMsg *e_msgport_wait(EMsgPort *mp); EMsg *e_msgport_get(EMsgPort *mp); void e_msgport_reply(EMsg *msg); /* e threads, a server thread with a message based request-response, and flexible queuing */ typedef struct _EThread EThread; typedef enum { E_THREAD_QUEUE = 0, /* run one by one, until done, if the queue_limit is reached, discard new request */ E_THREAD_DROP, /* run one by one, until done, if the queue_limit is reached, discard oldest requests */ E_THREAD_NEW, /* always run in a new thread, if the queue limit is reached, new requests are stored in the queue until a thread becomes available for it, creating a thread pool */ } e_thread_t; typedef void (*EThreadFunc)(EThread *, EMsg *, void *data); EThread *e_thread_new(e_thread_t type); void e_thread_destroy(EThread *e); void e_thread_set_queue_limit(EThread *e, int limit); void e_thread_set_msg_lost(EThread *e, EThreadFunc destroy, void *data); void e_thread_set_msg_destroy(EThread *e, EThreadFunc destroy, void *data); void e_thread_set_reply_port(EThread *e, EMsgPort *reply_port); void e_thread_set_msg_received(EThread *e, EThreadFunc received, void *data); void e_thread_put(EThread *e, EMsg *msg); /* sigh, another mutex interface, this one allows different mutex types, portably */ typedef struct _EMutex EMutex; typedef enum _e_mutex_t { E_MUTEX_SIMPLE, /* == pthread_mutex */ E_MUTEX_REC, /* recursive mutex */ } e_mutex_t; EMutex *e_mutex_new(e_mutex_t type); int e_mutex_destroy(EMutex *m); int e_mutex_lock(EMutex *m); int e_mutex_unlock(EMutex *m); void e_mutex_assert_locked(EMutex *m); #endif /npm_and_yarn/devel/electron4/files/node-fetch-2.6.1 FreeBSD GNOME current development ports (https://github.com/freebsd/freebsd-ports-gnome)
aboutsummaryrefslogtreecommitdiffstats
path: root/x11-toolkits/wxgtk26
Commit message (Expand)AuthorAgeFilesLines
* Fix pkg name collisionsbapt2014-01-041-1/+1
* Fix NO_STAGE attributionbapt2013-09-231-1/+1
* Add NO_STAGE all over the place in preparation for the staging support (cat: ...bapt2013-09-211-0/+1
* - Make ports use the libc provided iconv implementation on 10-CURRENTmadpilot2013-09-051-1/+1
* Add an explicit dependency on pkgconfbapt2013-09-031-1/+1
* - Remove MAKE_JOBS_SAFE variableak2013-08-151-1/+0
* The FreeBSD GNOME team presents a Glib and Gtk+ 3 update.kwm2013-07-311-2/+2
* Convert the last USE_ICONV to USES=iconvbapt2013-04-281-6/+2
* MAKE_JOBS_SAFE=yesfjoe2012-07-011-0/+1
* - update png to 1.5.10dinoex2012-06-012-2/+13
* - Add LDFLAGS to CONFIGURE_ENV and MAKE_ENV (as it was done with LDFLAGS)amdmi32011-09-241-3/+3
* - Kick MD5 supportmiwi2011-07-031-1/+0
* - Fix build with png-1.4.1itetcu2010-03-291-2/+3
* - update to 1.4.1dinoex2010-03-281-2/+2
* - update to jpeg-8dinoex2010-02-051-2/+2
* Presenting GNOME 2.28.1 for FreeBSD. The official release notes for thismarcus2009-11-292-1/+17
* - Switch SourceForge ports to the new File Release System: categories startin...amdmi32009-08-221-1/+1
* - update to jpeg7dinoex2009-07-181-2/+2
* Update to 2.6.4.fjoe2009-03-155-66/+20
* - Fix PORTREVISION here is ?= neededmiwi2008-04-201-1/+1
* - Remove unneeded dependency from gtk12/gtk20 [1]miwi2008-04-201-11/+9
* Fix coredump: use gtk_border_free() insead of g_free()fjoe2007-11-253-1/+23
* wxgtk2-contrib-common should not depend on wxgtk2.fjoe2007-10-281-1/+1
* Remove always-false/true conditions based on OSVERSION 500000edwin2007-10-041-7/+1
* Remove gstreamer 0.8 support. Ports that need gstreamer support in wxWidgetsfjoe2007-05-261-3/+1
* - Welcome X.org 7.2 \o/.flz2007-05-201-1/+1
* Fix ignoring wxgtk2-unicode on 4.x (requires wchar_t).fjoe2007-01-211-1/+7
* Move NO_LATEST_LINK to wxgtk2 2.6.fjoe2007-01-111-0/+1
* Fix file conflicts with wxgtk-common 2.4 and 2.8 ports.fjoe2007-01-093-6/+37
* - Use features of bsd.wx.mk, especially USE_WXpav2006-12-011-20/+9
* - Make X11BASE-clean.fjoe2006-11-292-1/+10
* - Fix wxgtk2-2.6-config and wxgtk2u-2.6-config when HOME is not set --fjoe2006-11-292-3/+23
* INSTALLS_SHLIB -> USE_LDCONFIG.fjoe2006-09-021-1/+1
* - Update gstreamer to 0.10ahze2006-04-301-2/+2
* Remove commented out USE_GCC.fjoe2006-04-021-1/+0
* - Update to 2.6.3fjoe2006-04-02