G
Guest
Following is a snap-shot of compiler created code when using UEM, use /Fx:
struct __EventCriticalSectionStub
{
void Lock() {}
void Unlock() {}
};
....
__EventCriticalSectionStub __EventingCS;
__EventingCS.Lock() and __EventingCS.Unlock() is called in several important
section such as __AddEventHandler__XXXX and firing event. But due to the flaw
in __EventCriticalSectionStub, corruption happen when using UEM in
multithread project.
From MSDN: Visual C++ Concepts: Adding Functionality - > Introduction to the
Unified Event Model
"..The model supports single- and multithreaded usage and protects data from
simultaneous multithread access..."
Am I missing something, or Visual C ...oops, I did it again?
struct __EventCriticalSectionStub
{
void Lock() {}
void Unlock() {}
};
....
__EventCriticalSectionStub __EventingCS;
__EventingCS.Lock() and __EventingCS.Unlock() is called in several important
section such as __AddEventHandler__XXXX and firing event. But due to the flaw
in __EventCriticalSectionStub, corruption happen when using UEM in
multithread project.
From MSDN: Visual C++ Concepts: Adding Functionality - > Introduction to the
Unified Event Model
"..The model supports single- and multithreaded usage and protects data from
simultaneous multithread access..."
Am I missing something, or Visual C ...oops, I did it again?