History

Merge remote-tracking branch 'upstream/main' into openbsd

Sigrid Solveig Haflínudóttir committed 3 years ago

Commit 642fcfd2 parents 4ed052c 6628be431 files · +852 −387Browse files

Showing the changes to src/core/util_thread.cpp (1 of 31 files). Show all

Unified · Split

src/core/util_thread.cpp+37−12
@@ -81,13 +81,15 @@ XThread::~XThread( ) · 80 unmodified lines
81 // TODO: find an alternative for Android?81 // TODO: find an alternative for Android?
82#if defined(__PLATFORM_MACOSX__) || ( defined(__PLATFORM_LINUX__) && !defined(__ANDROID__) ) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__)82#if defined(__PLATFORM_MACOSX__) || ( defined(__PLATFORM_LINUX__) && !defined(__ANDROID__) ) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__)
83 // log83 // log
84 EM_log( CK_LOG_FINER, "cancelling XThread: %u on thread: %u", (t_CKUINT)thread, (t_CKUINT)pthread_self() );84 EM_log( CK_LOG_FINER, "cancelling thread [0x%x] from [0x%x]...", getID(thread), getID(pthread_self()) );
85 pthread_cancel(thread);85 pthread_cancel(thread);
86 pthread_join(thread, NULL);86 pthread_join(thread, NULL);
87 // log87 // log
88 EM_log( CK_LOG_FINER, "joined with XThread: %u on thread: %u", (t_CKUINT)thread, (t_CKUINT)pthread_self() );88 EM_log( CK_LOG_FINER, "joined with thread [0x%x] from [0x%x]", getID(thread), getID(pthread_self()) );
89#elif defined(__PLATFORM_WIN32__)89#elif defined(__PLATFORM_WIN32__)
90 TerminateThread((HANDLE)thread, 0);90 // log
91 EM_log( CK_LOG_FINER, "terminating thread [0x%x] from [0x%x]...", getID(thread), (t_CKUINT)GetCurrentThreadId() );
92 TerminateThread( (HANDLE)thread, 0 );
91#endif93#endif
92 }94 }
93}95}
@@ -105,11 +107,18 @@ bool XThread::start( THREAD_FUNCTION routine, void * ptr ) · 11 unmodified lines
105 107
106#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) )108#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) )
107 if( pthread_create( &thread, NULL, *routine, ptr ) == 0 )109 if( pthread_create( &thread, NULL, *routine, ptr ) == 0 )
110 {
111 EM_log( CK_LOG_FINER, "starting thread [0x%x] from [0x%x]...", thread, getID(pthread_self()) );
108 result = true;112 result = true;
113 }
109#elif defined(__PLATFORM_WIN32__)114#elif defined(__PLATFORM_WIN32__)
110 unsigned thread_id;115 unsigned thread_id;
111 thread = _beginthreadex( NULL, 0, routine, ptr, 0, &thread_id );116 thread = _beginthreadex( NULL, 0, routine, ptr, 0, &thread_id );
112 if( thread ) result = true;117 if( thread )
118 {
119 EM_log( CK_LOG_FINER, "starting thread [0x%x] from [0x%x]...", thread_id, (t_CKUINT)GetCurrentThreadId() );
120 result = true;
121 }
113#endif122#endif
114 return result;123 return result;
115}124}
@@ -164,6 +173,22 @@ void XThread :: test( ) · 48 unmodified lines
164 173
165 174
166 175
176//-----------------------------------------------------------------------------
177// name: getID() | 1.5.0.4 (ge) added
178// desc: get thread id from a thread handle
179//-----------------------------------------------------------------------------
180t_CKUINT XThread::getID( THREAD_HANDLE t )
181{
182#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) )
183 return (t_CKUINT)t;
184#elif defined(__PLATFORM_WIN32__)
185 return (t_CKUINT)GetThreadId( (HANDLE)t );
186#endif
187}
188
189
190
191
167//-----------------------------------------------------------------------------192//-----------------------------------------------------------------------------
168// name: XMutex()193// name: XMutex()
169// desc: ...194// desc: ...
@@ -295,11 +320,11 @@ void XWriteThread::shutdown() · 125 unmodified lines
295 SmartPushLog logPush;320 SmartPushLog logPush;
296 321
297 // log322 // log
298 EM_log( CK_LOG_FINER, "waiting on write thread: %u", (t_CKUINT)m_thread.getThread() );323 EM_log( CK_LOG_FINER, "waiting on write thread [0x%x]...", m_thread.getID() );
299 // wait on the thread324 // wait on the thread
300 m_thread.wait( -1, false );325 m_thread.wait( -1, false );
301 // log326 // log
302 EM_log( CK_LOG_FINER, "done waiting for thread: %u", (t_CKUINT)m_thread.getThread() );327 EM_log( CK_LOG_FINER, "done waiting for thread [0x%x]", m_thread.getID() );
303}328}
304 329
305 330
@@ -315,9 +340,9 @@ size_t XWriteThread::fwrite(const void * ptr, size_t size, size_t nitems, FILE * · 9 unmodified lines
315 flush_data_buffer();340 flush_data_buffer();
316 341
317 // TODO: overflow detection342 // TODO: overflow detection
318 if(m_data_buffer->put((char*)ptr, size*nitems) == 0)343 if( m_data_buffer->put((char*)ptr, size*nitems) == 0 )
319 {344 {
320 EM_log(CK_LOG_SEVERE, "XWriteThread::fwrite: data buffer overflow");345 EM_log( CK_LOG_SEVERE, "XWriteThread::fwrite(): data buffer overflow!" );
321 }346 }
322 347
323 m_bytes_in_buffer += size*nitems;348 m_bytes_in_buffer += size*nitems;
@@ -435,8 +460,8 @@ unsigned XWriteThread::write_cb(void * _thiss) · 111 unmodified lines
435 msg.write.data_size);460 msg.write.data_size);
436 if(actual_size != msg.write.data_size)461 if(actual_size != msg.write.data_size)
437 {462 {
438 EM_log(CK_LOG_SEVERE, "XWriteThread: buffered data size mismatch (%li : %li)",463 EM_log( CK_LOG_SEVERE, "XWriteThread: buffered data size mismatch (%li : %li)",
439 msg.write.data_size, actual_size);464 msg.write.data_size, actual_size );
440 }465 }
441 466
442 ::fwrite(_this->m_thread_buffer, 1, actual_size, msg.file);467 ::fwrite(_this->m_thread_buffer, 1, actual_size, msg.file);
@@ -492,7 +517,7 @@ t_CKBOOL XThreadUtil::set_priority( CHUCK_THREAD tid, t_CKINT priority ) · 49 unmodified lines
492 int policy;517 int policy;
493 518
494 // log519 // log
495 EM_log( CK_LOG_INFO, "setting thread priority to: %ld...", priority );520 EM_log( CK_LOG_INFO, "setting thread [0x%x] priority to: %ld...", (t_CKUINT)tid, priority );
496 521
497 // get for thread522 // get for thread
498 if( pthread_getschedparam( tid, &policy, &param) )523 if( pthread_getschedparam( tid, &policy, &param) )
@@ -552,7 +577,7 @@ t_CKBOOL XThreadUtil::set_priority( CHUCK_THREAD tid, t_CKINT priority ) · 53 unmodified lines
552 if( !priority ) return TRUE;577 if( !priority ) return TRUE;
553 578
554 // log579 // log
555 EM_log( CK_LOG_FINE, "setting thread priority to: %ld...", priority );580 EM_log( CK_LOG_FINE, "setting thread [0x%x] priority to: %ld...", (t_CKUINT)GetThreadId(tid), priority );
556 581
557 // set the priority the thread, windows style582 // set the priority the thread, windows style
558 if( !SetThreadPriority( tid, priority ) )583 if( !SetThreadPriority( tid, priority ) )

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t