ports/audio/supercollider/files/patch-lang_LangPrimSource_PyrSched.cpp
Tobias Kortkamp 2da4b4aa14 New port: audio/supercollider
SuperCollider is a programming language for real time audio synthesis
and algorithmic composition.

The language interpreter runs in a cross platform IDE and communicates
via Open Sound Control with one or more synthesis servers.  The
SuperCollider synthesis server runs in a separate process or even on a
separate machine so it is ideal for realtime networked music.

SuperCollider was developed by James McCartney and originally released
in 1996.  He released it under the terms of the GNU General Public
License in 2002 when he joined the Apple Core Audio team.  It is now
maintained and developed by an active and enthusiastic community.  It
is used by musicians, scientists, and artists working with sound.

WWW: http://supercollider.github.io/

PR:		208443
Submitted by:	Tobias Brodel <brittlehaus@gmail.com>
Approved by:	mat (mentor)
Differential Revision:	https://reviews.freebsd.org/D10043
2017-03-20 16:25:23 +00:00

47 lines
1.4 KiB
C++

--- lang/LangPrimSource/PyrSched.cpp.orig 2017-03-20 15:18:39 UTC
+++ lang/LangPrimSource/PyrSched.cpp
@@ -38,7 +38,7 @@
#include <math.h>
#include <limits>
-#if defined(__APPLE__) || defined(__linux__)
+#if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__)
# include <pthread.h>
#endif
@@ -608,7 +608,7 @@ static void SC_LinuxSetRealtimePriority(pthread_t thre
SCLANG_DLLEXPORT_C void schedRun()
{
- thread thread(schedRunFunc);
+ std::thread thread(schedRunFunc);
gSchedThread = std::move(thread);
#ifdef __APPLE__
@@ -712,7 +712,7 @@ class TempoClock (public)
double mBaseSeconds;
double mBaseBeats;
bool mRun;
- thread mThread;
+ std::thread mThread;
condition_variable_any mCondition;
TempoClock *mPrev, *mNext;
@@ -749,7 +749,7 @@ TempoClock::TempoClock(VMGlobals *inVMGlobals, PyrObje
mQueue->size = 1;
SetInt(&mQueue->count, 0);
- thread thread(std::bind(&TempoClock::Run, this));
+ std::thread thread(std::bind(&TempoClock::Run, this));
mThread = std::move(thread);
#ifdef __APPLE__
@@ -777,7 +777,7 @@ TempoClock::TempoClock(VMGlobals *inVMGlobals, PyrObje
void TempoClock::StopReq()
{
//printf("->TempoClock::StopReq\n");
- thread stopThread(std::bind(&TempoClock::StopAndDelete, this));
+ std::thread stopThread(std::bind(&TempoClock::StopAndDelete, this));
stopThread.detach();
//printf("<-TempoClock::StopReq\n");