Re: [hlcoders] [Source] Thread-safety ?
I find that hard to believe tbh, It kinda never broke before, and now it breaks all the time, even with thread-safe functions implemented or threading completely disabled. If you're doing something un-thread-safe, like calling game functions from another thread, you can expect it to break. The fact that it didn't break at some earlier time is pure luck. At 2006/05/31 03:10 PM, Olef van de Stadt wrote: What changed in the Source engine since the 25th that a coredump occurs on my plugin ? Full trace: #0 0x00e7a350 in ConCommandBase::FindCommand () from bin/vstdlib_i486.so #1 0x02110491 in CCvar::FindVar () from bin/engine_i686.so #2 0x021da8e1 in SV_ActivateServer () from bin/engine_i686.so #3 0x021646cb in Host_NewGame () from bin/engine_i686.so #4 0x0216d4f5 in CHostState::State_NewGame () from bin/engine_i686.so #5 0x0216d949 in CHostState::FrameUpdate () from bin/engine_i686.so #6 0x0216d9e7 in HostState_Frame () from bin/engine_i686.so #7 0x021f9834 in CEngine::Frame () from bin/engine_i686.so #8 0x021f74ce in CDedicatedServerAPI::RunFrame () from bin/engine_i686.so #9 0x00146ffd in RunServer () from bin/dedicated_i686.so #10 0x021f6eae in CModAppSystemGroup::Main () from bin/engine_i686.so #11 0x022f9a73 in CAppSystemGroup::Run () from bin/engine_i686.so #12 0x021f80bf in CDedicatedServerAPI::ModInit () from bin/engine_i686.so #13 0x0014724a in CDedicatedAppSystemGroup::Main () from bin/dedicated_i686.so #14 0x00174d43 in CAppSystemGroup::Run () from bin/dedicated_i686.so #15 0x00174d43 in CAppSystemGroup::Run () from bin/dedicated_i686.so #16 0x0014760f in main () from bin/dedicated_i686.so #17 0x0804909e in main () Console: L 05/31/2006 - 21:03:24: Started map de_dust (CRC -1541057188) couldn't exec skill2.cfg Executing dedicated server config file Error: Material sprites/bubble : proxy AnimatedTexture not found! L 05/31/2006 - 21:03:25: [TEST] Start of map, 32 players Section [Scenes]: 0 resources total 0 bytes, 0.00 % of limit (2.10 MB) ./srcds_run: line 426: 24429 Segmentation fault (core dumped) $HL_CMD Add -debug to the ./srcds_run command line to generate a debug.log to help with solving this problem I tried it with disabling every command and convar in my code, still the same result. I thought of updating the build sources to current and the SDK files to current. Game is also up-to-date Alfred Reynolds wrote: The Source engine is NOT thread safe. You will need to access the engine interface from the main thread and then use some safe dispatch mechanism to get them to your other threads. - Alfred Olef van de Stadt wrote: My plugin needs to create some threads for checking purposes. The concept is as follows: When a player has got a successfull Steam-ID, that ID is checked against an SQL database. To prevent the server from stalling, I use the threads (pthreads for linux, windows threads for... you guessed it.) In that thread I make calls to engine-GetPlayerNetworkIDString and playerinfo-GetPlayerNetworkIDString. Both crash every now and then on those calls or return NULL pointers. Is there any way I can get those classes to work in threads ? Or are there specific functions to call prior to accessing these class' functions ? Thanks, - Olef van de Stadt. ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
Re: [hlcoders] [Source] Thread-safety ?
What changed in the Source engine since the 25th that a coredump occurs on my plugin ? Full trace: #0 0x00e7a350 in ConCommandBase::FindCommand () from bin/vstdlib_i486.so #1 0x02110491 in CCvar::FindVar () from bin/engine_i686.so #2 0x021da8e1 in SV_ActivateServer () from bin/engine_i686.so #3 0x021646cb in Host_NewGame () from bin/engine_i686.so #4 0x0216d4f5 in CHostState::State_NewGame () from bin/engine_i686.so #5 0x0216d949 in CHostState::FrameUpdate () from bin/engine_i686.so #6 0x0216d9e7 in HostState_Frame () from bin/engine_i686.so #7 0x021f9834 in CEngine::Frame () from bin/engine_i686.so #8 0x021f74ce in CDedicatedServerAPI::RunFrame () from bin/engine_i686.so #9 0x00146ffd in RunServer () from bin/dedicated_i686.so #10 0x021f6eae in CModAppSystemGroup::Main () from bin/engine_i686.so #11 0x022f9a73 in CAppSystemGroup::Run () from bin/engine_i686.so #12 0x021f80bf in CDedicatedServerAPI::ModInit () from bin/engine_i686.so #13 0x0014724a in CDedicatedAppSystemGroup::Main () from bin/dedicated_i686.so #14 0x00174d43 in CAppSystemGroup::Run () from bin/dedicated_i686.so #15 0x00174d43 in CAppSystemGroup::Run () from bin/dedicated_i686.so #16 0x0014760f in main () from bin/dedicated_i686.so #17 0x0804909e in main () Console: L 05/31/2006 - 21:03:24: Started map de_dust (CRC -1541057188) couldn't exec skill2.cfg Executing dedicated server config file Error: Material sprites/bubble : proxy AnimatedTexture not found! L 05/31/2006 - 21:03:25: [TEST] Start of map, 32 players Section [Scenes]: 0 resources total 0 bytes, 0.00 % of limit (2.10 MB) ./srcds_run: line 426: 24429 Segmentation fault (core dumped) $HL_CMD Add -debug to the ./srcds_run command line to generate a debug.log to help with solving this problem I tried it with disabling every command and convar in my code, still the same result. I thought of updating the build sources to current and the SDK files to current. Game is also up-to-date Alfred Reynolds wrote: The Source engine is NOT thread safe. You will need to access the engine interface from the main thread and then use some safe dispatch mechanism to get them to your other threads. - Alfred Olef van de Stadt wrote: My plugin needs to create some threads for checking purposes. The concept is as follows: When a player has got a successfull Steam-ID, that ID is checked against an SQL database. To prevent the server from stalling, I use the threads (pthreads for linux, windows threads for... you guessed it.) In that thread I make calls to engine-GetPlayerNetworkIDString and playerinfo-GetPlayerNetworkIDString. Both crash every now and then on those calls or return NULL pointers. Is there any way I can get those classes to work in threads ? Or are there specific functions to call prior to accessing these class' functions ? Thanks, - Olef van de Stadt. ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
Re: [hlcoders] [Source] Thread-safety ?
If you're doing something un-thread-safe, like calling game functions from another thread, you can expect it to break. The fact that it didn't break at some earlier time is pure luck. At 2006/05/31 03:10 PM, Olef van de Stadt wrote: What changed in the Source engine since the 25th that a coredump occurs on my plugin ? Full trace: #0 0x00e7a350 in ConCommandBase::FindCommand () from bin/vstdlib_i486.so #1 0x02110491 in CCvar::FindVar () from bin/engine_i686.so #2 0x021da8e1 in SV_ActivateServer () from bin/engine_i686.so #3 0x021646cb in Host_NewGame () from bin/engine_i686.so #4 0x0216d4f5 in CHostState::State_NewGame () from bin/engine_i686.so #5 0x0216d949 in CHostState::FrameUpdate () from bin/engine_i686.so #6 0x0216d9e7 in HostState_Frame () from bin/engine_i686.so #7 0x021f9834 in CEngine::Frame () from bin/engine_i686.so #8 0x021f74ce in CDedicatedServerAPI::RunFrame () from bin/engine_i686.so #9 0x00146ffd in RunServer () from bin/dedicated_i686.so #10 0x021f6eae in CModAppSystemGroup::Main () from bin/engine_i686.so #11 0x022f9a73 in CAppSystemGroup::Run () from bin/engine_i686.so #12 0x021f80bf in CDedicatedServerAPI::ModInit () from bin/engine_i686.so #13 0x0014724a in CDedicatedAppSystemGroup::Main () from bin/dedicated_i686.so #14 0x00174d43 in CAppSystemGroup::Run () from bin/dedicated_i686.so #15 0x00174d43 in CAppSystemGroup::Run () from bin/dedicated_i686.so #16 0x0014760f in main () from bin/dedicated_i686.so #17 0x0804909e in main () Console: L 05/31/2006 - 21:03:24: Started map de_dust (CRC -1541057188) couldn't exec skill2.cfg Executing dedicated server config file Error: Material sprites/bubble : proxy AnimatedTexture not found! L 05/31/2006 - 21:03:25: [TEST] Start of map, 32 players Section [Scenes]: 0 resources total 0 bytes, 0.00 % of limit (2.10 MB) ./srcds_run: line 426: 24429 Segmentation fault (core dumped) $HL_CMD Add -debug to the ./srcds_run command line to generate a debug.log to help with solving this problem I tried it with disabling every command and convar in my code, still the same result. I thought of updating the build sources to current and the SDK files to current. Game is also up-to-date Alfred Reynolds wrote: The Source engine is NOT thread safe. You will need to access the engine interface from the main thread and then use some safe dispatch mechanism to get them to your other threads. - Alfred Olef van de Stadt wrote: My plugin needs to create some threads for checking purposes. The concept is as follows: When a player has got a successfull Steam-ID, that ID is checked against an SQL database. To prevent the server from stalling, I use the threads (pthreads for linux, windows threads for... you guessed it.) In that thread I make calls to engine-GetPlayerNetworkIDString and playerinfo-GetPlayerNetworkIDString. Both crash every now and then on those calls or return NULL pointers. Is there any way I can get those classes to work in threads ? Or are there specific functions to call prior to accessing these class' functions ? Thanks, - Olef van de Stadt. ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
[hlcoders] [Source] Thread-safety ?
My plugin needs to create some threads for checking purposes. The concept is as follows: When a player has got a successfull Steam-ID, that ID is checked against an SQL database. To prevent the server from stalling, I use the threads (pthreads for linux, windows threads for... you guessed it.) In that thread I make calls to engine-GetPlayerNetworkIDString and playerinfo-GetPlayerNetworkIDString. Both crash every now and then on those calls or return NULL pointers. Is there any way I can get those classes to work in threads ? Or are there specific functions to call prior to accessing these class' functions ? Thanks, - Olef van de Stadt. ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
RE: [hlcoders] [Source] Thread-safety ?
The Source engine is NOT thread safe. You will need to access the engine interface from the main thread and then use some safe dispatch mechanism to get them to your other threads. - Alfred Olef van de Stadt wrote: My plugin needs to create some threads for checking purposes. The concept is as follows: When a player has got a successfull Steam-ID, that ID is checked against an SQL database. To prevent the server from stalling, I use the threads (pthreads for linux, windows threads for... you guessed it.) In that thread I make calls to engine-GetPlayerNetworkIDString and playerinfo-GetPlayerNetworkIDString. Both crash every now and then on those calls or return NULL pointers. Is there any way I can get those classes to work in threads ? Or are there specific functions to call prior to accessing these class' functions ? Thanks, - Olef van de Stadt. ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders