Event thread sem can now be interrupted.

em_start() is no longer called from within interrupt.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7481 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
beveloper 2004-05-09 21:20:56 +00:00
parent ec3efcdcac
commit a05655eea6
1 changed files with 2 additions and 2 deletions

View File

@ -500,7 +500,6 @@ stop_event_thread(struct adapter *adapter)
* the packet is requeued.
**********************************************************************/
// can be called from within interrupt
static void
em_start(struct ifnet *ifp)
{
@ -802,7 +801,7 @@ event_handler(void *cookie)
int32 events;
for (;;) {
if (acquire_sem_etc(adapter->event_sem, 1, B_CAN_INTERRUPT, 0) != B_OK)
if (acquire_sem_etc(adapter->event_sem, 1, B_CAN_INTERRUPT, 0) == B_BAD_SEM_ID)
return 0;
events = atomic_read(&adapter->event_flags); // read
@ -819,6 +818,7 @@ event_handler(void *cookie)
if (events & EVENT_RESTART_TX) {
TRACE("EVENT_RESTART_TX\n");
PRINT("EVENT_RESTART_TX not implemented!\n");
// XXX not multithread save?
// if (ifp->if_flags & IFF_RUNNING && ifp->if_snd.ifq_head != NULL)
// em_start(ifp);