mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 06:10:39 +00:00
msvcr100: Add ExternalContextBase::Block() implementation.
This commit is contained in:
parent
92e75061f3
commit
dcccf544be
|
@ -100,6 +100,7 @@ typedef struct {
|
||||||
struct scheduler_list scheduler;
|
struct scheduler_list scheduler;
|
||||||
unsigned int id;
|
unsigned int id;
|
||||||
union allocator_cache_entry *allocator_cache[8];
|
union allocator_cache_entry *allocator_cache[8];
|
||||||
|
LONG blocked;
|
||||||
} ExternalContextBase;
|
} ExternalContextBase;
|
||||||
extern const vtable_ptr ExternalContextBase_vtable;
|
extern const vtable_ptr ExternalContextBase_vtable;
|
||||||
static void ExternalContextBase_ctor(ExternalContextBase*);
|
static void ExternalContextBase_ctor(ExternalContextBase*);
|
||||||
|
@ -927,7 +928,16 @@ bool __thiscall ExternalContextBase_IsSynchronouslyBlocked(const ExternalContext
|
||||||
DEFINE_THISCALL_WRAPPER(ExternalContextBase_Block, 4)
|
DEFINE_THISCALL_WRAPPER(ExternalContextBase_Block, 4)
|
||||||
void __thiscall ExternalContextBase_Block(ExternalContextBase *this)
|
void __thiscall ExternalContextBase_Block(ExternalContextBase *this)
|
||||||
{
|
{
|
||||||
FIXME("(%p)->() stub\n", this);
|
LONG blocked;
|
||||||
|
|
||||||
|
TRACE("(%p)->()\n", this);
|
||||||
|
|
||||||
|
blocked = InterlockedIncrement(&this->blocked);
|
||||||
|
while (blocked >= 1)
|
||||||
|
{
|
||||||
|
RtlWaitOnAddress(&this->blocked, &blocked, sizeof(LONG), NULL);
|
||||||
|
blocked = this->blocked;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINE_THISCALL_WRAPPER(ExternalContextBase_Yield, 4)
|
DEFINE_THISCALL_WRAPPER(ExternalContextBase_Yield, 4)
|
||||||
|
|
Loading…
Reference in a new issue