cmd/ebitenmobile: bug fix: dead lock due to @synchronized

Closes #2407
This commit is contained in:
Hajime Hoshi 2022-10-25 13:36:54 +09:00
parent 89471701fc
commit 8d81ed1d32

View File

@ -233,13 +233,15 @@ const objcM = `// Code generated by ebitenmobile. DO NOT EDIT.
if (!active_) {
return;
}
}
if (EbitenmobileviewIsGL()) {
[[self glkView] setNeedsDisplay];
} else {
[self updateEbiten];
}
if (EbitenmobileviewIsGL()) {
[[self glkView] setNeedsDisplay];
} else {
[self updateEbiten];
}
@synchronized(self) {
if (explicitRendering_) {
[displayLink_ setPaused:YES];
}
@ -247,15 +249,14 @@ const objcM = `// Code generated by ebitenmobile. DO NOT EDIT.
}
- (void)glkView:(GLKView*)view drawInRect:(CGRect)rect {
@synchronized(self) {
[self updateEbiten];
}
[self updateEbiten];
}
- (void)updateEbiten {
if (error_) {
return;
}
NSError* err = nil;
EbitenmobileviewUpdate(&err);
if (err != nil) {
@ -307,11 +308,12 @@ const objcM = `// Code generated by ebitenmobile. DO NOT EDIT.
@synchronized(self) {
active_ = false;
NSError* err = nil;
EbitenmobileviewSuspend(&err);
if (err != nil) {
[self onErrorOnGameUpdate:err];
}
}
NSError* err = nil;
EbitenmobileviewSuspend(&err);
if (err != nil) {
[self onErrorOnGameUpdate:err];
}
}
@ -320,11 +322,12 @@ const objcM = `// Code generated by ebitenmobile. DO NOT EDIT.
@synchronized(self) {
active_ = true;
NSError* err = nil;
EbitenmobileviewResume(&err);
if (err != nil) {
[self onErrorOnGameUpdate:err];
}
}
NSError* err = nil;
EbitenmobileviewResume(&err);
if (err != nil) {
[self onErrorOnGameUpdate:err];
}
}