Title: | dec_mls_plus |
Moderator: | SMURF::BAT |
Created: | Mon Nov 29 1993 |
Last Modified: | Thu Jun 05 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 534 |
Total number of notes: | 2544 |
Date: Tue, 4 Feb 1997 11:53:43 -0500 From: [email protected] (Tammy Sandefur) To: [email protected] Subject: critical help please hi Bat, I just received this from another new-b out at trident. Then I get a call from Jr saying they need info by due date (friday). My response (oh well) I wanted to say take a number, but I held back. from steve Essentially, I have a c++ class that gets instantiated before I make a pthread_init. When I go to make a call against that class from within a thread, I get a segment violation. If, however, I make a call against that class within my main(), it executes flawlessly. I've ensured that I've done the proper typecasting and I've ensured that the class variable I am using is valid. I've ensured that the variable is even the *exact* same variable in the main() and the thread. For instance, my class is sServerClass, with it's instantiation being pServer. Within main(): pServer->sendToClient(...) works just fine. Within the thread, pServer->sendToClient(...) causes a segment violation. main::pServer and thread::pServer are exactly the same value. I compile all my sources that are threaded with -D_REENTRANT, and pass "-Wthreads -lpthreads -lmach -lc_r" to the linking stage. I use gcc 2.7.2.1. I do, however, use dec's linker. error When the program does finally segment violate, I actually get an exception error from the dce/thd subsystem (invalid memory address). Thanks Tammy Sandefur Digital Equipment Ultrix & Osf Network Support [email protected]
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
444.1 | pthread_attr_setstacksize | SMURF::BAT | Segui la tua beatitudine | Tue Feb 04 1997 14:20 | 27 |
Date: Tue, 4 Feb 1997 13:59:42 -0500 From: [email protected] (Tammy Sandefur) To: [email protected] Subject: more info I've been working on the problem I described to you earlier about my threads not executing a method properly. I managed to find a workaround. If I go in and strip the method down to its BARE calls (ie, strip out any superflous debugging information, streamline the flow a bit, ultimately generating a smaller footprint), then the method works. Which leads me to believe that it is a stack corruption problem. Well, I used pthread_attr_setstacksize() to set the stack size of the thread to be 640k, just in case (yes, I went a bit on the extreme side), but that didn't seem to have any affect ... Is there an implicit limit to a method call in a thread? Is there something I'm doing wrong with my pthread_attr_setstacksize() call? (yes, I do pthread_attr_create( &variable ); pthread_attr_setstacksize( &variable, 640*1024); pthread_create( ..., variable ...) ) ... Tammy Sandefur Digital Equipment Ultrix & Osf Network Support [email protected] | |||||
444.2 | DECthreads conference had some suggestions | SMURF::BAT | Segui la tua beatitudine | Wed Mar 12 1997 14:07 | 1 |
I sent Tammy the gist of note 368 and the pthreads notesfile. |