summaryrefslogtreecommitdiff
path: root/macosx/plugins/DFNet/macsrc
diff options
context:
space:
mode:
Diffstat (limited to 'macosx/plugins/DFNet/macsrc')
-rwxr-xr-xmacosx/plugins/DFNet/macsrc/SockDialog.m12
1 files changed, 10 insertions, 2 deletions
diff --git a/macosx/plugins/DFNet/macsrc/SockDialog.m b/macosx/plugins/DFNet/macsrc/SockDialog.m
index 065afc26..77a09f04 100755
--- a/macosx/plugins/DFNet/macsrc/SockDialog.m
+++ b/macosx/plugins/DFNet/macsrc/SockDialog.m
@@ -40,12 +40,20 @@ void SysMessage(const char *fmt, ...)
}
}
+static inline void RunOnMainThreadSync(dispatch_block_t block)
+{
+ if ([NSThread isMainThread]) {
+ block();
+ } else {
+ dispatch_sync(dispatch_get_main_queue(), block);
+ }
+}
static SockDialog *globalSock = nil;
void sockCreateWaitDlg()
{
- dispatch_sync(dispatch_get_main_queue(), ^{
+ RunOnMainThreadSync(^{
if (globalSock == nil) {
globalSock = [[SockDialog alloc] init];
}
@@ -70,7 +78,7 @@ long sockOpen()
void sockDestroyWaitDlg()
{
- dispatch_sync(dispatch_get_main_queue(), ^{
+ RunOnMainThreadSync(^{
if (globalSock != nil) {
[globalSock close];