MFC CSingleLock.Lock() Broken???
Erik van der Goot -- erik.van-der-goot@jrc.it
Tuesday, February 27, 1996
NT3.51 VC++4.0 MFC
I ran into problems using CEvent and CSingleLock. Declare a CEvent* pEvent
in one thread. In the constructor do a pEvent=new CEvent(). Pass the pointer
to a second thread. Do a CSingleLock sLock(pEvent) on this and now try to
lock it. sLock.Lock(). This thread now waits for a pEvent->Setevent() in the
other thread. Works.
Now the reverse. Somewhere I want to test for an event, not wait for it. So
I try using sLock.IsLocked(). No joy. So I try sLock.Lock(0). No joy. So I
think I've got it wrong somewhere else and waste a day.
In the end I reverse my logic and create this particular event
signalled/manual. In my loop I now try to lock it. Works (not surprising,
see above). So to stop looping I do a pEvent->ResetEvent(); (And yes, I do
test the return value..)
Now the Lock hangs. This is correct. However. If I now change the Lock() to
Lock(0), it should immediately return and tell me it can't do the lock. Well,
it returns but it does not return FALSE....
So I guess this is a bug..
Anybody??
Thanks very much
Erik
Mike Blaszczak -- mikeblas@msn.com
Friday, March 01, 1996
----------
From: owner-mfc-l@netcom.com on behalf of Erik van der Goot
Sent: Tuesday, February 27, 1996 10:37
> So I guess this is a bug..
> Anybody??
> Thanks very much
As I posted in the mfc newsgroup, indeed it is a bug and it has been fixed for
MFC 4.1.
.B ekiM
TCHAR szBosstones[] = _T("I'm all out of answers, don't even search me.");
| Вернуться в корень Архива
|