Re: [hlcoders] [Source] Thread-safety ?

2006-06-01 Thread Olef van de Stadt
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 ?

2006-05-31 Thread Olef van de Stadt

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 ?

2006-05-31 Thread bloodykenny
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 ?

2006-05-28 Thread Olef van de Stadt

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 ?

2006-05-28 Thread Alfred Reynolds
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