~haggai-eran/nux/rtl-rebased

« back to all changes in this revision

Viewing changes to NuxCore/ThreadWin.cpp

  • Committer: Jay Taoko
  • Date: 2011-10-21 23:49:15 UTC
  • mfrom: (508.1.2 nux-20)
  • Revision ID: jay.taoko@canonical.com-20111021234915-hnzakb5ndebica8i
* Removed custom Nux types: t_u32, t_s32, t_bool, ...

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
namespace nux
29
29
{
30
30
 
31
 
#ifdef _WIN64
32
 
#define NUX_ATOMOP_ITERLOCKED_INCREMENT      InterlockedIncrement64
33
 
#define NUX_ATOMOP_ITERLOCKED_DECREMENT      InterlockedDecrement64
34
 
#define NUX_ATOMOP_ITERLOCKED_EXCHANGED      InterlockedExchange64
35
 
#define NUX_ATOMOP_ITERLOCKED_VALUE
36
 
#elif _WIN32
37
31
#define NUX_ATOMOP_ITERLOCKED_INCREMENT      InterlockedIncrement
38
32
#define NUX_ATOMOP_ITERLOCKED_DECREMENT      InterlockedDecrement
39
33
#define NUX_ATOMOP_ITERLOCKED_EXCHANGED      InterlockedExchange
40
34
#define NUX_ATOMOP_ITERLOCKED_VALUE
41
 
#endif
42
35
 
43
 
  t_integer NThreadSafeCounter::Increment()
 
36
  long NThreadSafeCounter::Increment()
44
37
  {
45
38
    return NUX_ATOMOP_ITERLOCKED_INCREMENT ( &m_Counter );
46
39
  }
47
 
  t_integer NThreadSafeCounter::Decrement()
 
40
  long NThreadSafeCounter::Decrement()
48
41
  {
49
42
    return NUX_ATOMOP_ITERLOCKED_DECREMENT ( &m_Counter );
50
43
  }
51
 
  t_integer NThreadSafeCounter::Set (t_integer i)
 
44
  long NThreadSafeCounter::Set (long i)
52
45
  {
53
46
    return NUX_ATOMOP_ITERLOCKED_EXCHANGED ( &m_Counter, i );
54
47
  }
55
48
 
56
 
  t_integer NThreadSafeCounter::GetValue() const
 
49
  long NThreadSafeCounter::GetValue() const
57
50
  {
58
51
    return m_Counter;
59
52
  }
60
53
 
61
 
  t_integer NThreadSafeCounter::operator ++ ()
 
54
  long NThreadSafeCounter::operator ++ ()
62
55
  {
63
56
    return Increment();
64
57
  }
65
58
 
66
 
  t_integer NThreadSafeCounter::operator -- ()
 
59
  long NThreadSafeCounter::operator -- ()
67
60
  {
68
61
    return Decrement();
69
62
  }
70
63
 
71
 
  t_bool NThreadSafeCounter::operator == (t_integer i)
 
64
  bool NThreadSafeCounter::operator == (long i)
72
65
  {
73
66
    return (m_Counter == i);
74
67
  }
75
68
 
76
 
  t_u32  NThreadLocalStorage::m_TLSIndex[NThreadLocalStorage::NbTLS];
 
69
  unsigned int  NThreadLocalStorage::m_TLSIndex[NThreadLocalStorage::NbTLS];
77
70
  BOOL NThreadLocalStorage::m_TLSUsed[NThreadLocalStorage::NbTLS];
78
71
  NThreadLocalStorage::TLS_ShutdownCallback  NThreadLocalStorage::m_TLSCallbacks[NThreadLocalStorage::NbTLS];
79
72
 
109
102
    }
110
103
  }
111
104
 
112
 
  BOOL NThreadLocalStorage::RegisterTLS (t_u32 index, NThreadLocalStorage::TLS_ShutdownCallback shutdownCallback)
 
105
  BOOL NThreadLocalStorage::RegisterTLS (unsigned int index, NThreadLocalStorage::TLS_ShutdownCallback shutdownCallback)
113
106
  {
114
107
    nuxAssert (!m_TLSUsed[index]);
115
108
 
136
129
  {
137
130
    Memset (m_TLSUsed, 0, sizeof (m_TLSUsed) );
138
131
 
139
 
    for (t_u32 i = 0; i < NThreadLocalStorage::NbTLS; i++)
 
132
    for (unsigned int i = 0; i < NThreadLocalStorage::NbTLS; i++)
140
133
    {
141
134
      // Fill the array with invalid values
142
135
      m_TLSIndex[i] = NThreadLocalStorage::InvalidTLS; // invalid index
156
149
  {
157
150
    TLS_ShutdownCallback *callback = m_TLSCallbacks;
158
151
 
159
 
    for (t_u32 i = 0; i < NThreadLocalStorage::NbTLS; ++i, ++callback)
 
152
    for (unsigned int i = 0; i < NThreadLocalStorage::NbTLS; ++i, ++callback)
160
153
    {
161
154
      if (*callback)
162
155
      {
199
192
      {
200
193
        //ResumeStart();
201
194
        m_ThreadState = THREADINIT;
202
 
        m_ThreadCtx.m_dwExitCode = (t_u32) - 1;
 
195
        m_ThreadCtx.m_dwExitCode = (unsigned int) - 1;
203
196
        return m_ThreadState;
204
197
      }
205
198
      else
232
225
 
233
226
      if ( m_ThreadCtx.m_dwExitCode == STILL_ACTIVE && bForceKill )
234
227
      {
235
 
        TerminateThread (m_ThreadCtx.m_hThread, t_u32 (-1) );
 
228
        TerminateThread (m_ThreadCtx.m_hThread, unsigned int (-1) );
236
229
        CloseHandle (m_ThreadCtx.m_hThread);
237
230
      }
238
231
 
360
353
    return 0;
361
354
  }
362
355
 
363
 
  t_u32 NThread::GetExitCode() const
 
356
  unsigned int NThread::GetExitCode() const
364
357
  {
365
358
    if ( m_ThreadCtx.m_hThread )
366
359
      GetExitCodeThread (m_ThreadCtx.m_hThread, (LPDWORD) &m_ThreadCtx.m_dwExitCode);
373
366
    return m_ThreadCtx.m_hThread;
374
367
  }
375
368
 
376
 
  t_u32 NThread::GetThreadId()
 
369
  unsigned int NThread::GetThreadId()
377
370
  {
378
 
    return (t_u32) m_ThreadCtx.m_dwTID;
 
371
    return (unsigned int) m_ThreadCtx.m_dwTID;
379
372
  }
380
373
 
381
374
  ThreadState NThread::GetThreadState() const