Mercurial > hg > truffle
comparison src/os/windows/vm/osThread_windows.hpp @ 6093:960a442eae91
7161732: Improve handling of thread_id in OSThread
Reviewed-by: dholmes, kamg
author | rbackman |
---|---|
date | Tue, 22 May 2012 10:11:53 +0200 |
parents | 0105f367a14c |
children |
comparison
equal
deleted
inserted
replaced
6082:4b37c0dafe3a | 6093:960a442eae91 |
---|---|
23 */ | 23 */ |
24 | 24 |
25 #ifndef OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP | 25 #ifndef OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP |
26 #define OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP | 26 #define OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP |
27 | 27 |
28 typedef void* HANDLE; | 28 typedef void* HANDLE; |
29 public: | |
30 typedef unsigned long thread_id_t; | |
29 | 31 |
30 private: | 32 private: |
31 // Win32-specific thread information | 33 // Win32-specific thread information |
32 HANDLE _thread_handle; // Win32 thread handle | 34 HANDLE _thread_handle; // Win32 thread handle |
33 unsigned long _thread_id; // Win32 thread id | |
34 HANDLE _interrupt_event; // Event signalled on thread interrupt | 35 HANDLE _interrupt_event; // Event signalled on thread interrupt |
35 ThreadState _last_state; | 36 ThreadState _last_state; |
36 | 37 |
37 public: | 38 public: |
38 // The following will only apply in the Win32 implementation, and should only | 39 // The following will only apply in the Win32 implementation, and should only |
40 HANDLE thread_handle() const { return _thread_handle; } | 41 HANDLE thread_handle() const { return _thread_handle; } |
41 void set_thread_handle(HANDLE handle) { _thread_handle = handle; } | 42 void set_thread_handle(HANDLE handle) { _thread_handle = handle; } |
42 HANDLE interrupt_event() const { return _interrupt_event; } | 43 HANDLE interrupt_event() const { return _interrupt_event; } |
43 void set_interrupt_event(HANDLE interrupt_event) { _interrupt_event = interrupt_event; } | 44 void set_interrupt_event(HANDLE interrupt_event) { _interrupt_event = interrupt_event; } |
44 | 45 |
45 | |
46 static size_t thread_id_size() { return sizeof(unsigned long); } | |
47 unsigned long thread_id() const { return _thread_id; } | |
48 #ifndef PRODUCT | 46 #ifndef PRODUCT |
49 // Used for debugging, return a unique integer for each thread. | 47 // Used for debugging, return a unique integer for each thread. |
50 int thread_identifier() const { return _thread_id; } | 48 int thread_identifier() const { return _thread_id; } |
51 #endif | 49 #endif |
52 #ifdef ASSERT | 50 #ifdef ASSERT |
54 // | 52 // |
55 bool valid_reposition_failure() { | 53 bool valid_reposition_failure() { |
56 return false; | 54 return false; |
57 } | 55 } |
58 #endif // ASSERT | 56 #endif // ASSERT |
59 void set_thread_id(unsigned long thread_id) { _thread_id = thread_id; } | |
60 | |
61 bool is_try_mutex_enter() { return false; } | 57 bool is_try_mutex_enter() { return false; } |
62 | 58 |
63 // This is a temporary fix for the thread states during | 59 // This is a temporary fix for the thread states during |
64 // suspend/resume until we throw away OSThread completely. | 60 // suspend/resume until we throw away OSThread completely. |
65 // NEEDS_CLEANUP | 61 // NEEDS_CLEANUP |