Skip to content

Commit 7487923

Browse files
committed
Fix Windows thread handle leak
1 parent a1e9f07 commit 7487923

File tree

5 files changed

+22
-61
lines changed

5 files changed

+22
-61
lines changed

src/base/system.c

+2-3
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949

5050
#elif defined(CONF_FAMILY_WINDOWS)
5151
#define WIN32_LEAN_AND_MEAN
52+
#undef _WIN32_WINNT
5253
#define _WIN32_WINNT 0x0501 /* required for mingw to get getaddrinfo to work */
5354
#include <windows.h>
5455
#include <winsock2.h>
@@ -181,9 +182,7 @@ void dbg_enable_threaded()
181182
dbg_msg_threaded = 1;
182183

183184
Thread = thread_init(dbg_msg_thread, 0);
184-
#if defined(CONF_FAMILY_UNIX)
185-
pthread_detach((pthread_t)Thread);
186-
#endif
185+
thread_detach(Thread);
187186
}
188187
#endif
189188

src/engine/shared/fifoconsole.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ FifoConsole::FifoConsole(IConsole *pConsole, char *pFifoFile, int flag)
2828
m_pConsole = pConsole;
2929
m_flag = flag;
3030

31-
pthread_detach((pthread_t)m_pFifoThread);
31+
thread_detach(m_pFifoThread);
3232
}
3333

3434
FifoConsole::~FifoConsole()

src/game/editor/editor.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -5466,9 +5466,7 @@ void CEditor::DoMapBorder()
54665466
void CEditor::CreateUndoStep()
54675467
{
54685468
void *CreateThread = thread_init(CreateUndoStepThread, this);
5469-
#if defined(CONF_FAMILY_UNIX)
5470-
pthread_detach((pthread_t)CreateThread);
5471-
#endif
5469+
thread_detach(CreateThread);
54725470
}
54735471

54745472
void CEditor::CreateUndoStepThread(void *pUser)

src/game/server/score/file_score.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ void CFileScore::SaveScoreThread(void *pUser)
9696
void CFileScore::Save()
9797
{
9898
void *pSaveThread = thread_init(SaveScoreThread, this);
99-
#if defined(CONF_FAMILY_UNIX)
100-
pthread_detach((pthread_t)pSaveThread);
101-
#endif
99+
thread_detach(pSaveThread);
102100
}
103101

104102
void CFileScore::Init()

src/game/server/score/sql_score.cpp

+17-51
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,7 @@ void CSqlScore::LoadScore(int ClientID)
279279
Tmp->m_pSqlData = this;
280280

281281
void *LoadThread = thread_init(LoadScoreThread, Tmp);
282-
#if defined(CONF_FAMILY_UNIX)
283-
pthread_detach((pthread_t)LoadThread);
284-
#endif
282+
thread_detach(LoadThread);
285283
}
286284

287285
void CSqlScore::SaveTeamScoreThread(void *pUser)
@@ -416,9 +414,7 @@ void CSqlScore::MapVote(int ClientID, const char* MapName)
416414
Tmp->m_pSqlData = this;
417415

418416
void *VoteThread = thread_init(MapVoteThread, Tmp);
419-
#if defined(CONF_FAMILY_UNIX)
420-
pthread_detach((pthread_t)VoteThread);
421-
#endif
417+
thread_detach(VoteThread);
422418
}
423419

424420
void CSqlScore::MapVoteThread(void *pUser)
@@ -518,9 +514,7 @@ void CSqlScore::MapInfo(int ClientID, const char* MapName)
518514
Tmp->m_pSqlData = this;
519515

520516
void *InfoThread = thread_init(MapInfoThread, Tmp);
521-
#if defined(CONF_FAMILY_UNIX)
522-
pthread_detach((pthread_t)InfoThread);
523-
#endif
517+
thread_detach(InfoThread);
524518
}
525519

526520
void CSqlScore::MapInfoThread(void *pUser)
@@ -693,9 +687,7 @@ void CSqlScore::SaveScore(int ClientID, float Time, float CpTime[NUM_CHECKPOINTS
693687
Tmp->m_pSqlData = this;
694688

695689
void *SaveThread = thread_init(SaveScoreThread, Tmp);
696-
#if defined(CONF_FAMILY_UNIX)
697-
pthread_detach((pthread_t)SaveThread);
698-
#endif
690+
thread_detach(SaveThread);
699691
}
700692

701693
void CSqlScore::SaveTeamScore(int* aClientIDs, unsigned int Size, float Time)
@@ -714,9 +706,7 @@ void CSqlScore::SaveTeamScore(int* aClientIDs, unsigned int Size, float Time)
714706
Tmp->m_pSqlData = this;
715707

716708
void *SaveTeamThread = thread_init(SaveTeamScoreThread, Tmp);
717-
#if defined(CONF_FAMILY_UNIX)
718-
pthread_detach((pthread_t)SaveTeamThread);
719-
#endif
709+
thread_detach(SaveTeamThread);
720710
}
721711

722712
void CSqlScore::ShowTeamRankThread(void *pUser)
@@ -983,9 +973,7 @@ void CSqlScore::ShowTeamRank(int ClientID, const char* pName, bool Search)
983973
Tmp->m_pSqlData = this;
984974

985975
void *TeamRankThread = thread_init(ShowTeamRankThread, Tmp);
986-
#if defined(CONF_FAMILY_UNIX)
987-
pthread_detach((pthread_t)TeamRankThread);
988-
#endif
976+
thread_detach(TeamRankThread);
989977
}
990978

991979
void CSqlScore::ShowRank(int ClientID, const char* pName, bool Search)
@@ -998,9 +986,7 @@ void CSqlScore::ShowRank(int ClientID, const char* pName, bool Search)
998986
Tmp->m_pSqlData = this;
999987

1000988
void *RankThread = thread_init(ShowRankThread, Tmp);
1001-
#if defined(CONF_FAMILY_UNIX)
1002-
pthread_detach((pthread_t)RankThread);
1003-
#endif
989+
thread_detach(RankThread);
1004990
}
1005991

1006992
void CSqlScore::ShowTop5Thread(void *pUser)
@@ -1152,9 +1138,7 @@ void CSqlScore::ShowTeamTop5(IConsole::IResult *pResult, int ClientID, void *pUs
11521138
Tmp->m_pSqlData = this;
11531139

11541140
void *TeamTop5Thread = thread_init(ShowTeamTop5Thread, Tmp);
1155-
#if defined(CONF_FAMILY_UNIX)
1156-
pthread_detach((pthread_t)TeamTop5Thread);
1157-
#endif
1141+
thread_detach(TeamTop5Thread);
11581142
}
11591143

11601144
void CSqlScore::ShowTop5(IConsole::IResult *pResult, int ClientID, void *pUserData, int Debut)
@@ -1165,9 +1149,7 @@ void CSqlScore::ShowTop5(IConsole::IResult *pResult, int ClientID, void *pUserDa
11651149
Tmp->m_pSqlData = this;
11661150

11671151
void *Top5Thread = thread_init(ShowTop5Thread, Tmp);
1168-
#if defined(CONF_FAMILY_UNIX)
1169-
pthread_detach((pthread_t)Top5Thread);
1170-
#endif
1152+
thread_detach(Top5Thread);
11711153
}
11721154

11731155
void CSqlScore::ShowTimes(int ClientID, int Debut)
@@ -1179,9 +1161,7 @@ void CSqlScore::ShowTimes(int ClientID, int Debut)
11791161
Tmp->m_Search = false;
11801162

11811163
void *TimesThread = thread_init(ShowTimesThread, Tmp);
1182-
#if defined(CONF_FAMILY_UNIX)
1183-
pthread_detach((pthread_t)TimesThread);
1184-
#endif
1164+
thread_detach(TimesThread);
11851165
}
11861166

11871167
void CSqlScore::ShowTimes(int ClientID, const char* pName, int Debut)
@@ -1194,9 +1174,7 @@ void CSqlScore::ShowTimes(int ClientID, const char* pName, int Debut)
11941174
Tmp->m_Search = true;
11951175

11961176
void *TimesThread = thread_init(ShowTimesThread, Tmp);
1197-
#if defined(CONF_FAMILY_UNIX)
1198-
pthread_detach((pthread_t)TimesThread);
1199-
#endif
1177+
thread_detach(TimesThread);
12001178
}
12011179

12021180
void CSqlScore::FuzzyString(char *pString)
@@ -1399,9 +1377,7 @@ void CSqlScore::ShowPoints(int ClientID, const char* pName, bool Search)
13991377
Tmp->m_pSqlData = this;
14001378

14011379
void *PointsThread = thread_init(ShowPointsThread, Tmp);
1402-
#if defined(CONF_FAMILY_UNIX)
1403-
pthread_detach((pthread_t)PointsThread);
1404-
#endif
1380+
thread_detach(PointsThread);
14051381
}
14061382

14071383
void CSqlScore::ShowTopPointsThread(void *pUser)
@@ -1463,9 +1439,7 @@ void CSqlScore::ShowTopPoints(IConsole::IResult *pResult, int ClientID, void *pU
14631439
Tmp->m_pSqlData = this;
14641440

14651441
void *TopPointsThread = thread_init(ShowTopPointsThread, Tmp);
1466-
#if defined(CONF_FAMILY_UNIX)
1467-
pthread_detach((pthread_t)TopPointsThread);
1468-
#endif
1442+
thread_detach(TopPointsThread);
14691443
}
14701444

14711445
void CSqlScore::RandomMapThread(void *pUser)
@@ -1589,9 +1563,7 @@ void CSqlScore::RandomMap(int ClientID, int stars)
15891563
Tmp->m_pSqlData = this;
15901564

15911565
void *RandomThread = thread_init(RandomMapThread, Tmp);
1592-
#if defined(CONF_FAMILY_UNIX)
1593-
pthread_detach((pthread_t)RandomThread);
1594-
#endif
1566+
thread_detach(RandomThread);
15951567
}
15961568

15971569
void CSqlScore::RandomUnfinishedMap(int ClientID, int stars)
@@ -1603,9 +1575,7 @@ void CSqlScore::RandomUnfinishedMap(int ClientID, int stars)
16031575
Tmp->m_pSqlData = this;
16041576

16051577
void *RandomUnfinishedThread = thread_init(RandomUnfinishedMapThread, Tmp);
1606-
#if defined(CONF_FAMILY_UNIX)
1607-
pthread_detach((pthread_t)RandomUnfinishedThread);
1608-
#endif
1578+
thread_detach(RandomUnfinishedThread);
16091579
}
16101580

16111581
void CSqlScore::SaveTeam(int Team, const char* Code, int ClientID, const char* Server)
@@ -1630,9 +1600,7 @@ void CSqlScore::SaveTeam(int Team, const char* Code, int ClientID, const char* S
16301600
Tmp->m_pSqlData = this;
16311601

16321602
void *SaveThread = thread_init(SaveTeamThread, Tmp);
1633-
#if defined(CONF_FAMILY_UNIX)
1634-
pthread_detach((pthread_t)SaveThread);
1635-
#endif
1603+
thread_detach(SaveThread);
16361604
}
16371605

16381606
void CSqlScore::SaveTeamThread(void *pUser)
@@ -1745,9 +1713,7 @@ void CSqlScore::LoadTeam(const char* Code, int ClientID)
17451713
Tmp->m_pSqlData = this;
17461714

17471715
void *LoadThread = thread_init(LoadTeamThread, Tmp);
1748-
#if defined(CONF_FAMILY_UNIX)
1749-
pthread_detach((pthread_t)LoadThread);
1750-
#endif
1716+
thread_detach(LoadThread);
17511717
}
17521718

17531719
void CSqlScore::LoadTeamThread(void *pUser)

0 commit comments

Comments
 (0)