wakeup() means wake any waiting threads, so we use the relevant flags. this gives a reliable dv receive stream here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30849 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -38,6 +38,8 @@ typedef uint32_t bus_size_t;
|
|||||||
#define mtx_destroy mutex_destroy
|
#define mtx_destroy mutex_destroy
|
||||||
#define mtx_init(lockaddr, name, type, opts) mutex_init(lockaddr, name)
|
#define mtx_init(lockaddr, name, type, opts) mutex_init(lockaddr, name)
|
||||||
|
|
||||||
|
#define wakeup(i) release_sem_etc(i->Sem, 0, B_RELEASE_IF_WAITING_ONLY | B_RELEASE_ALL)
|
||||||
|
|
||||||
#define splfw() 0
|
#define splfw() 0
|
||||||
#define splx(s)
|
#define splx(s)
|
||||||
|
|
||||||
|
|||||||
@@ -2209,8 +2209,7 @@ fwohci_tbuf_update(struct fwohci_softc *sc, int dmach)
|
|||||||
FW_GUNLOCK(fc);
|
FW_GUNLOCK(fc);
|
||||||
splx(s);
|
splx(s);
|
||||||
if (w)
|
if (w)
|
||||||
// wakeup(it);
|
wakeup(it);
|
||||||
release_sem(it->Sem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -2275,8 +2274,7 @@ fwohci_rbuf_update(struct fwohci_softc *sc, int dmach)
|
|||||||
if (ir->flag & FWXFERQ_HANDLER)
|
if (ir->flag & FWXFERQ_HANDLER)
|
||||||
ir->hand(ir);
|
ir->hand(ir);
|
||||||
else
|
else
|
||||||
// wakeup(ir);
|
wakeup(ir);
|
||||||
release_sem(ir->Sem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user