diff options
author | Karl Berry <karl@freefriends.org> | 2009-07-20 23:59:26 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-07-20 23:59:26 +0000 |
commit | c575a3e01c48c6807ff66e39df09c16ece08af60 (patch) | |
tree | c3bb87255b16358bb998849d2d83302bedea2e78 /Build/source/utils/asymptote/glrender.cc | |
parent | 3927b41be4f2831464a2c190c28042b7285dd91b (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.cc | 20 |
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(); + } } } |