|  |  | @@ -1,90 +0,0 @@ | 
		
	
		
			
			|  |  |  | /* | 
		
	
		
			
			|  |  |  | * Carla Tests | 
		
	
		
			
			|  |  |  | * Copyright (C) 2013 Filipe Coelho <falktx@falktx.com> | 
		
	
		
			
			|  |  |  | * | 
		
	
		
			
			|  |  |  | * This program is free software; you can redistribute it and/or | 
		
	
		
			
			|  |  |  | * modify it under the terms of the GNU General Public License as | 
		
	
		
			
			|  |  |  | * published by the Free Software Foundation; either version 2 of | 
		
	
		
			
			|  |  |  | * the License, or any later version. | 
		
	
		
			
			|  |  |  | * | 
		
	
		
			
			|  |  |  | * This program is distributed in the hope that it will be useful, | 
		
	
		
			
			|  |  |  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
		
	
		
			
			|  |  |  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
		
	
		
			
			|  |  |  | * GNU General Public License for more details. | 
		
	
		
			
			|  |  |  | * | 
		
	
		
			
			|  |  |  | * For a full copy of the GNU General Public License see the GPL.txt file | 
		
	
		
			
			|  |  |  | */ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | #include "CarlaThread.hpp" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | class MyThread : public CarlaThread | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | public: | 
		
	
		
			
			|  |  |  | MyThread(bool wait) | 
		
	
		
			
			|  |  |  | : blockWait(wait) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | protected: | 
		
	
		
			
			|  |  |  | void run() | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | printf("RUN(%i)\n", blockWait); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (blockWait) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | for (int i=0; i < 100; i++) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | carla_msleep(50); | 
		
	
		
			
			|  |  |  | printf("RUN(%i) - BLOCKING\n", blockWait); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | printf("RUN(%i) - FINISHED\n", blockWait); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | private: | 
		
	
		
			
			|  |  |  | bool blockWait; | 
		
	
		
			
			|  |  |  | }; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | int main() | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | MyThread t1(false); | 
		
	
		
			
			|  |  |  | MyThread t2(true); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | MyThread t3(true); | 
		
	
		
			
			|  |  |  | MyThread t4(true); | 
		
	
		
			
			|  |  |  | MyThread t5(false); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | t1.start(); | 
		
	
		
			
			|  |  |  | t2.start(); | 
		
	
		
			
			|  |  |  | //t3.start(); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | //t3.waitForStarted(); | 
		
	
		
			
			|  |  |  | //t3.stop(); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | t1.waitForStarted(); | 
		
	
		
			
			|  |  |  | t2.waitForStarted(); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | printf("THREADS STARTED\n"); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // test if threds keep working | 
		
	
		
			
			|  |  |  | carla_sleep(1); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | printf("THREAD1 STOPPING...\n"); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (t1.isRunning() && ! t1.stop(500)) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | printf("THREAD1 FAILED, TERMINATE\n"); | 
		
	
		
			
			|  |  |  | t1.terminate(); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | printf("THREAD2 STOPPING...\n"); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (t2.isRunning() && ! t2.stop(500)) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | printf("THREAD2 FAILED, TERMINATE\n"); | 
		
	
		
			
			|  |  |  | t2.terminate(); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return 0; | 
		
	
		
			
			|  |  |  | } |