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
8181 // TODO: find an alternative for Android?
8282 #if defined(__PLATFORM_MACOSX__) || ( defined(__PLATFORM_LINUX__) && !defined(__ANDROID__) ) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__)
8383 // 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()) );
8585 pthread_cancel(thread);
8686 pthread_join(thread, NULL);
8787 // 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()) );
8989 #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 );
9193 #endif
9294 }
9395 }
@@ -105,11 +107,18 @@ bool XThread::start( THREAD_FUNCTION routine, void * ptr ) · 11 unmodified lines
105107
106108 #if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_OPENBSD__) )
107109 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()) );
108112 result = true;
113+ }
109114 #elif defined(__PLATFORM_WIN32__)
110115 unsigned thread_id;
111116 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+ }
113122 #endif
114123 return result;
115124 }
@@ -164,6 +173,22 @@ void XThread :: test( ) · 48 unmodified lines
164173
165174
166175
176+//-----------------------------------------------------------------------------
177+// name: getID() | 1.5.0.4 (ge) added
178+// desc: get thread id from a thread handle
179+//-----------------------------------------------------------------------------
180+t_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+
167192 //-----------------------------------------------------------------------------
168193 // name: XMutex()
169194 // desc: ...
@@ -295,11 +320,11 @@ void XWriteThread::shutdown() · 125 unmodified lines
295320 SmartPushLog logPush;
296321
297322 // 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() );
299324 // wait on the thread
300325 m_thread.wait( -1, false );
301326 // 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() );
303328 }
304329
305330
@@ -315,9 +340,9 @@ size_t XWriteThread::fwrite(const void * ptr, size_t size, size_t nitems, FILE * · 9 unmodified lines
315340 flush_data_buffer();
316341
317342 // 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 )
319344 {
320− EM_log(CK_LOG_SEVERE, "XWriteThread::fwrite: data buffer overflow");
345+ EM_log( CK_LOG_SEVERE, "XWriteThread::fwrite(): data buffer overflow!" );
321346 }
322347
323348 m_bytes_in_buffer += size*nitems;
@@ -435,8 +460,8 @@ unsigned XWriteThread::write_cb(void * _thiss) · 111 unmodified lines
435460 msg.write.data_size);
436461 if(actual_size != msg.write.data_size)
437462 {
438− EM_log(CK_LOG_SEVERE, "XWriteThread: buffered data size mismatch (%li : %li)",
439− msg.write.data_size, actual_size);
463+ EM_log( CK_LOG_SEVERE, "XWriteThread: buffered data size mismatch (%li : %li)",
464+ msg.write.data_size, actual_size );
440465 }
441466
442467 ::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
492517 int policy;
493518
494519 // 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 );
496521
497522 // get for thread
498523 if( pthread_getschedparam( tid, &policy, &param) )
@@ -552,7 +577,7 @@ t_CKBOOL XThreadUtil::set_priority( CHUCK_THREAD tid, t_CKINT priority ) · 53 unmodified lines
552577 if( !priority ) return TRUE;
553578
554579 // 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 );
556581
557582 // set the priority the thread, windows style
558583 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