Update of /cvsroot/pure-data/externals/grill/flext/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7886/source
Modified Files: fldefs_meththr.h flsupport.h flthr.cpp Log Message: cosmetic stuff corrections to config build templates digest one-element list messages as single atoms made flext::Forward threadsafe simplified message analysis
Index: fldefs_meththr.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/fldefs_meththr.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** fldefs_meththr.h 26 Jan 2005 05:01:45 -0000 1.3 --- fldefs_meththr.h 7 Jun 2005 14:40:18 -0000 1.4 *************** *** 50,54 **** thisType *th = FLEXT_CAST<thisType *>(p->cl); \ bool ok = th->PushThread(); \ ! AtomAnything *args = p->var[0]._any.args; \ delete p; \ if(ok) { \ --- 50,54 ---- thisType *th = FLEXT_CAST<thisType *>(p->cl); \ bool ok = th->PushThread(); \ ! AtomAnything *args = p->var[0]._any; \ delete p; \ if(ok) { \ *************** *** 68,72 **** thisType *th = FLEXT_CAST<thisType *>(p->cl); \ bool ok = th->PushThread(); \ ! AtomList *args = p->var[0]._list.args; \ delete p; \ if(ok) { \ --- 68,72 ---- thisType *th = FLEXT_CAST<thisType *>(p->cl); \ bool ok = th->PushThread(); \ ! AtomList *args = p->var[0]._list; \ delete p; \ if(ok) { \ *************** *** 82,86 **** #define FLEXT_THREAD_X(M_FUN) \ static bool FLEXT_CALL_PRE(M_FUN)(flext_base *c,void *data) { \ ! thr_params *p = new thr_params; p->var[0]._ext.data = data; \ return c->StartThread(FLEXT_THR_PRE(M_FUN),p,#M_FUN); \ } \ --- 82,86 ---- #define FLEXT_THREAD_X(M_FUN) \ static bool FLEXT_CALL_PRE(M_FUN)(flext_base *c,void *data) { \ ! thr_params *p = new thr_params; p->var[0]._ext = data; \ return c->StartThread(FLEXT_THR_PRE(M_FUN),p,#M_FUN); \ } \ *************** *** 88,92 **** thisType *th = FLEXT_CAST<thisType *>(p->cl); \ bool ok = th->PushThread(); \ ! void *data = p->var[0]._ext.data; \ delete p; \ if(ok) { \ --- 88,92 ---- thisType *th = FLEXT_CAST<thisType *>(p->cl); \ bool ok = th->PushThread(); \ ! void *data = p->var[0]._ext; \ delete p; \ if(ok) { \
Index: flthr.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flthr.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** flthr.cpp 7 Jun 2005 14:13:49 -0000 1.30 --- flthr.cpp 7 Jun 2005 14:40:19 -0000 1.31 *************** *** 105,111 ****
- flext::thrid_t flext::GetSysThreadId() { return thrid; } - - static void LaunchHelper(thr_entry *e) { --- 105,108 ---- *************** *** 602,607 **** flext_base::thr_params::~thr_params() { if(var) delete[] var; }
! void flext_base::thr_params::set_any(const t_symbol *s,int argc,const t_atom *argv) { var[0]._any.args = new AtomAnything(s,argc,argv); } ! void flext_base::thr_params::set_list(int argc,const t_atom *argv) { var[0]._list.args = new AtomList(argc,argv); }
--- 599,604 ---- flext_base::thr_params::~thr_params() { if(var) delete[] var; }
! void flext_base::thr_params::set_any(const t_symbol *s,int argc,const t_atom *argv) { var[0]._any = new AtomAnything(s,argc,argv); } ! void flext_base::thr_params::set_list(int argc,const t_atom *argv) { var[0]._list = new AtomList(argc,argv); }
Index: flsupport.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsupport.h,v retrieving revision 1.90 retrieving revision 1.91 diff -C2 -d -r1.90 -r1.91 *** flsupport.h 7 Jun 2005 14:13:49 -0000 1.90 --- flsupport.h 7 Jun 2005 14:40:18 -0000 1.91 *************** *** 782,790 **** //! @} FLEXT_S_LOCK
- #ifdef FLEXT_THREADS /*! \defgroup FLEXT_S_THREAD Flext thread handling @{ */
//! thread type #if FLEXT_THREADS == FLEXT_THR_MP --- 782,800 ---- //! @} FLEXT_S_LOCK
/*! \defgroup FLEXT_S_THREAD Flext thread handling @{ */
+ //! Check if current thread is the realtime system's thread + static bool IsSystemThread() { + #ifdef FLEXT_THREADS + return IsThread(GetSysThreadId()); + #else + return true; + #endif + } + + #ifdef FLEXT_THREADS + //! thread type #if FLEXT_THREADS == FLEXT_THR_MP *************** *** 814,818 **** /*! \brief Get system thread id */ ! static thrid_t GetSysThreadId();
//! Check if current thread should terminate --- 824,828 ---- /*! \brief Get system thread id */ ! static thrid_t GetSysThreadId() { return thrid; }
//! Check if current thread should terminate *************** *** 830,836 **** }
- //! Check if current thread is the realtime system's thread - static bool IsSystemThread() { return IsThread(GetSysThreadId()); } -
/*! \brief Thread parameters --- 840,843 ---- *************** *** 853,859 **** int _int; t_symptr _t_symptr; ! struct { AtomAnything *args; } _any; ! struct { AtomList *args; } _list; ! struct { void *data; } _ext; } *var; }; --- 860,866 ---- int _int; t_symptr _t_symptr; ! AtomAnything *_any; ! AtomList *_list; ! void *_ext; } *var; }; *************** *** 1094,1102 **** static bool StopThread(void (*meth)(thr_params *p),thr_params *params = NULL,bool wait = false);
- //! @} FLEXT_S_THREAD - - #endif // FLEXT_THREADS
// --- timer stuff ----------------------------------------------- --- 1101,1108 ---- static bool StopThread(void (*meth)(thr_params *p),thr_params *params = NULL,bool wait = false);
#endif // FLEXT_THREADS
+ //! @} FLEXT_S_THREAD +
// --- timer stuff -----------------------------------------------