summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/glrender.cc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-07-20 23:59:26 +0000
committerKarl Berry <karl@freefriends.org>2009-07-20 23:59:26 +0000
commitc575a3e01c48c6807ff66e39df09c16ece08af60 (patch)
treec3bb87255b16358bb998849d2d83302bedea2e78 /Build/source/utils/asymptote/glrender.cc
parent3927b41be4f2831464a2c190c28042b7285dd91b (diff)
asymptote 1.82
git-svn-id: svn://tug.org/texlive/trunk@14356 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/glrender.cc')
-rw-r--r--Build/source/utils/asymptote/glrender.cc20
1 files changed, 16 insertions, 4 deletions
diff --git a/Build/source/utils/asymptote/glrender.cc b/Build/source/utils/asymptote/glrender.cc
index 279d6b789c7..c08684e2d53 100644
--- a/Build/source/utils/asymptote/glrender.cc
+++ b/Build/source/utils/asymptote/glrender.cc
@@ -392,8 +392,8 @@ void Export()
#ifdef HAVE_LIBPTHREAD
if(glthread && readyAfterExport) {
- endwait(readySignal,readyLock);
readyAfterExport=false;
+ endwait(readySignal,readyLock);
}
#endif
}
@@ -497,7 +497,7 @@ void updateHandler(int)
fitscreen();
}
-void autoExport()
+void exportHandler(int=0)
{
if(!Iconify)
glutShowWindow();
@@ -1400,8 +1400,20 @@ void glrender(const string& prefix, const picture *pic, const string& format,
glutMainLoop();
} else {
- autoExport();
- if(!glthread) quit();
+ if(glthread) {
+ if(havewindow) {
+ readyAfterExport=true;
+ pthread_kill(mainthread,SIGUSR1);
+ } else {
+ initialized=true;
+ readyAfterExport=true;
+ signal(SIGUSR1,exportHandler);
+ exportHandler();
+ }
+ } else {
+ exportHandler();
+ quit();
+ }
}
}