NOTES The list's nodes are PubScreenNodes as defined in <intuition/screens.h>. EXAMPLE BUGS SEE ALSO UnlockPubScreenList() INTERNALS *****************************************************************************/ #define GPB(x) GetPrivIBase(x) { AROS_LIBFUNC_INIT DEBUG_LOCKPUBSCREENLIST(dprintf("LockPubScreenList: <%s>\n", FindTask(NULL)->tc_Node.ln_Name)); ObtainSemaphore(&GPB(IntuitionBase)->PubScrListLock); DEBUG_LOCKPUBSCREENLIST(dprintf("LockPubScreenList: done\n")); return (struct List *)&(GPB(IntuitionBase)->PubScreenList); AROS_LIBFUNC_EXIT } /* LockPubScreenList */
EXAMPLE BUGS SEE ALSO AllocMiscResource() INTERNALS HISTORY 23.7.98 SDuvan implemented *****************************************************************************/ { AROS_LIBFUNC_INIT ObtainSemaphore(&GPB(MiscBase)->mb_Lock); GPB(MiscBase)->mb_owners[unitNum] = NULL; ReleaseSemaphore(&GPB(MiscBase)->mb_Lock); AROS_LIBFUNC_EXIT } /* FreeMiscResource */
EXAMPLE BUGS SEE ALSO ObtainDataTypeA() INTERNALS HISTORY *****************************************************************************/ { AROS_LIBFUNC_INIT ObtainSemaphoreShared(&(GPB(DataTypesBase)->dtb_DTList)->dtl_Lock); if(dt != NULL) { if(((struct CompoundDatatype *)dt)->OpenCount) ((struct CompoundDatatype*)dt)->OpenCount--; else Alert(AN_Unknown); } ReleaseSemaphore(&(GPB(DataTypesBase)->dtb_DTList)->dtl_Lock); AROS_LIBFUNC_EXIT } /* ReleaseDataType */
INTERNALS HISTORY ******************************************************************************/ { AROS_LIBFUNC_INIT LONG count = 0; struct BrokerCopy *brokerCopy; CxObj *broker; FreeBrokerList(CopyofList); ObtainSemaphore(&GPB(CxBase)->cx_SignalSemaphore); ForeachNode(&GPB(CxBase)->cx_BrokerList, broker) { if (CxObjType(broker) == CX_ZERO) { break; } brokerCopy = AllocVec(sizeof(struct BrokerCopy), MEMF_PUBLIC | MEMF_CLEAR); if (brokerCopy == NULL) { break; }