Subject: [BEEPwg] fiostate_unblock_write() hanging intermittently.

From: "Des Smith" <[email-masked]>
Date: Tue, 17 Dec 2002 08:49:55 -0000

I find that intermittently the fiostate_unblock_write() is hanging as
something is holding onto the 
 
ios->pn->lock. 
 
Im using gdb and looking at the process threads. Looking at the code I
noticed that in the file
 
bp_fcbeeptcp.c in the ‘notify_Lower’ routine I see the following lines 

Notify_lower()
{
            …..
            …..
            …..
            ….
 
case 3:
                SEM_POST(&thisio->lock);  
                if (thisio->state >= IOS_STATE_ACTIVE)
                    thisio->state=IOS_STATE_WRITE_PENDING;
                SEM_POST(&thisio->lock);
                fiostate_unblock_write(thisio);
                break;
            default:
 
}
 
To me this doesn’t look right. Ie it looks like you should have
SEM_WAIT(&thisio->lock) after the case statement.
 
Using gdb by printing the ios-pn->lock variable ie see a count of 17.
Could this be causing the hanging? 
 
Has only else seen this behaviour? 
 
Thanks for your help
Des Smith.

---

From: Marshall Rose <[email-masked]>
Date: Tue, 17 Dec 2002 07:20:12 -0800

> ...

hi. i think you want [email-masked] - this list is for
protocol issues, not beepcore-c implementation issues...

/mtr
_______________________________________________
BEEPwg mailing list
[email-masked]
http://lists.beepcore.org/mailman/listinfo/beepwg