| #ifndef _NGX_OS_THREAD_H_INCLUDED_ | |
| #define _NGX_OS_THREAD_H_INCLUDED_ | |
| typedef int ngx_os_tid_t; | |
| typedef int ngx_tid_t; | |
| extern char *ngx_stacks_start; | |
| extern char *ngx_stacks_end; | |
| extern size_t ngx_stack_size; | |
| static inline ngx_tid_t ngx_gettid() | |
| { | |
| char *sp; | |
| __asm__ ("mov %%esp,%0" : "=r" (sp)); | |
| return (sp > ngx_stacks_end) ? 0: | |
| (sp - ngx_stacks_start) / ngx_stack_size + 1; | |
| } | |
| #endif /* _NGX_OS_THREAD_H_INCLUDED_ */ |