There's definately a lock/monitor in-balance here. I'm at a complete loss as to what the cause could be though (esp. now that you're "doing embedding idle stuff".

Jud

Ed Burns wrote:
[EMAIL PROTECTED]">
Ed Burns <[EMAIL PROTECTED]> writes:

Grr.  Lamentably, incorporating these calls in my event loop in the same
manner as used in winEmbed did not fix the problem.

This time the last event processed by the msg queue is 0xC16F. Any ideas?

I modified prmon.c to print out a message on monitor enter and exit like
this:

fprintf(msgFile, "Enter Monitor: %p\n", mon);
fflush(msgFile);

I analyzed the output and found that the monitor with pointer value
0x056BB390 was "Entered" 5153 times and "Exited" 5150 times before the
crash. Also monitor 0x063FA9C0 "Entered" 11 times, "Exited" 9 times.

Could this be causing deadlock?

Here's the full output of my test data:

The number after the pointer is the number of times that monitor was
entered or exited.

Enter Monitor: 051D2170 37
Exit Monitor: 051D2170 37
Enter Monitor: 051D4420 6
Exit Monitor: 051D4420 6
Enter Monitor: 051D4CF0 117
Exit Monitor: 051D4CF0 117
Enter Monitor: 051D6880 4327
Exit Monitor: 051D6880 4327
Enter Monitor: 052A66C0 14
Exit Monitor: 052A66C0 14
Enter Monitor: 056566B0 3182
Exit Monitor: 056566B0 3182
Enter Monitor: 056BB390 5153
Exit Monitor: 056BB390 5150
Enter Monitor: 056BED70 9
Exit Monitor: 056BED70 9
Enter Monitor: 056D36A0 55
Exit Monitor: 056D36A0 55
Enter Monitor: 06382750 178
Exit Monitor: 06382750 178
Enter Monitor: 063B8D10 2
Exit Monitor: 063B8D10 2
Enter Monitor: 063C1030 7
Exit Monitor: 063C1030 7
Enter Monitor: 063C1420 5
Exit Monitor: 063C1420 5
Enter Monitor: 063C2D50 4
Exit Monitor: 063C2D50 4
Enter Monitor: 063F0E90 16
Exit Monitor: 063F0E90 16
Enter Monitor: 063F1A60 21
Exit Monitor: 063F1A60 21
Enter Monitor: 063FA9C0 11
Exit Monitor: 063FA9C0 9




Reply via email to