mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-13 02:52:37 +00:00
Codechange: [OSX] Try to set the thread name for debugger display.
This commit is contained in:
parent
4971678f52
commit
f670277ff5
@ -38,4 +38,6 @@ static inline bool MacOSVersionIsAtLeast(long major, long minor, long bugfix)
|
||||
|
||||
bool IsMonospaceFont(CFStringRef name);
|
||||
|
||||
void MacOSSetThreadName(const char *name);
|
||||
|
||||
#endif /* MACOS_H */
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "../../rev.h"
|
||||
#include "macos.h"
|
||||
#include "../../string_func.h"
|
||||
#include <pthread.h>
|
||||
|
||||
#define Rect OTTDRect
|
||||
#define Point OTTDPoint
|
||||
@ -233,3 +234,21 @@ bool IsMonospaceFont(CFStringRef name)
|
||||
|
||||
return font != NULL ? [ font isFixedPitch ] : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the current thread for the debugger.
|
||||
* @param name The new name of the current thread.
|
||||
*/
|
||||
void MacOSSetThreadName(const char *name)
|
||||
{
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
|
||||
if (MacOSVersionIsAtLeast(10, 6, 0)) {
|
||||
pthread_setname_np(name);
|
||||
}
|
||||
#endif
|
||||
|
||||
NSThread *cur = [ NSThread currentThread ];
|
||||
if (cur != NULL && [ cur respondsToSelector:@selector(setName:) ]) {
|
||||
[ cur performSelector:@selector(setName:) withObject:[ NSString stringWithUTF8String:name ] ];
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,10 @@
|
||||
#include <pthread.h>
|
||||
#include <errno.h>
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#include "../os/macosx/macos.h"
|
||||
#endif
|
||||
|
||||
#include "../safeguards.h"
|
||||
|
||||
/**
|
||||
@ -69,6 +73,9 @@ private:
|
||||
pthread_setname_np(pthread_self(), self->name);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#if defined(__APPLE__)
|
||||
MacOSSetThreadName(self->name);
|
||||
#endif
|
||||
self->ThreadProc();
|
||||
pthread_exit(NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user