|  | @@ -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; |  |  |  | 
														
													
														
															
																|  |  | } |  |  |  |