diff options
Diffstat (limited to 'libs/utils/Threads.cpp')
| -rw-r--r-- | libs/utils/Threads.cpp | 40 | 
1 files changed, 22 insertions, 18 deletions
diff --git a/libs/utils/Threads.cpp b/libs/utils/Threads.cpp index a25a81fbeb..eb964978e4 100644 --- a/libs/utils/Threads.cpp +++ b/libs/utils/Threads.cpp @@ -109,30 +109,34 @@ struct thread_data_t {          }          if (name) { -#if defined(HAVE_PRCTL) -            // Mac OS doesn't have this, and we build libutil for the host too -            int hasAt = 0; -            int hasDot = 0; -            char *s = name; -            while (*s) { -                if (*s == '.') hasDot = 1; -                else if (*s == '@') hasAt = 1; -                s++; -            } -            int len = s - name; -            if (len < 15 || hasAt || !hasDot) { -                s = name; -            } else { -                s = name + len - 15; -            } -            prctl(PR_SET_NAME, (unsigned long) s, 0, 0, 0); -#endif +            androidSetThreadName(name);              free(name);          }          return f(u);      }  }; +void androidSetThreadName(const char* name) { +#if defined(HAVE_PRCTL) +    // Mac OS doesn't have this, and we build libutil for the host too +    int hasAt = 0; +    int hasDot = 0; +    const char *s = name; +    while (*s) { +        if (*s == '.') hasDot = 1; +        else if (*s == '@') hasAt = 1; +        s++; +    } +    int len = s - name; +    if (len < 15 || hasAt || !hasDot) { +        s = name; +    } else { +        s = name + len - 15; +    } +    prctl(PR_SET_NAME, (unsigned long) s, 0, 0, 0); +#endif +} +  int androidCreateRawThreadEtc(android_thread_func_t entryFunction,                                 void *userData,                                 const char* threadName,  |