Erp Wrong.

Threads in Linux are treated as processes due to the extremely low task
switching overhead.

For more information see the kernel mailing list.

What we need is a ps --threads option to combine them into 1 process.  I
once had to explain to a System admin that my code was not taking up
hundreds of megs of memory but that TOP/PS was showing the threads as
seperate processes.

Chris "Winston" Litchfield

----- Original Message ----- 
From: "Yun Zhou" <[EMAIL PROTECTED]>
To: "Dale Kingston" <[EMAIL PROTECTED]>
Cc: <[email protected]>
Sent: Thursday, August 07, 2003 9:18 PM
Subject: Re: Threads problem


> Hmm... threads shouden't appear as seperate processes with different PIDs,
> instead, they should be all part of one process.
>
> I don't know what's going on here, but it dosen't look right.
>
> On the other hand, if it works properly, I wouden't worry too much about
it :)
>
> On Thursday 07 August 2003 18:21, Dale Kingston wrote:
> > Ok well I fixed that problem was my stupid... But is it still sapose to
> > look like this when I typed ps ux:
> >
> > realms   30203  1.5  1.8 25732 18928 ?       S    18:32   0:43
../src/rom
> > 4998
> > realms   30207  0.0  1.8 25732 18928 ?       S    18:32   0:00
../src/rom
> > 4998
> > realms   30208  0.0  1.8 25732 18928 ?       S    18:32   0:00
../src/rom
> > 4998
> >
> > Is it normal to now have it show up three times?
> > ----- Original Message -----
> > From: "Dale Kingston" <[EMAIL PROTECTED]>
> > To: <[email protected]>
> > Sent: Thursday, August 07, 2003 2:44 PM
> > Subject: Threads problem
> >
> > > Ok hehehe I think I did something wrong cause now when I try to view
the
> >
> > web
> >
> > > server for my test port it just sits there and sits there and then
says
> > > it can't find the page. And I noticed, I typed ps ux in the shell and
> > > well I got:
> > >
> > > realms   28382  0.0  0.0  2224  988 ?        S    16:35   0:00
/bin/csh
> > > ./startu
> > > realms   28383  8.1  1.7 24984 18204 ?       S    16:35   0:09
../src/rom
> > > 4998
> > > realms   28385  0.0  1.7 24984 18204 ?       S    16:36   0:00
../src/rom
> > > 4998
> > > realms   28386  0.0  1.7 24984 18204 ?       S    16:36   0:00
../src/rom
> > > 4998
> > >
> > > So I'll show you what I did maybe someone can point out where I messed
> > > up.
> > >
> > >  sem_init (&web_queue, 0, 0);
> > >  pthread_create (&web_thread, NULL, &handle_web, NULL);
> > > // pthread_detach(web_thread);
> > >  web_server_down = FALSE;
> > >  return;
> > >
> > > }
> > >
> > > That is the bottom of my init_web function that opens the port and
fires
> >
> > up
> >
> > > the web server.
> > >
> > > Then I changed the handle_web to look like this:
> > >
> > > void* handle_web(void* unused)
> > >
> > > At the bottom I had it do this :
> > >
> > >  pthread_exit(NULL);
> > >  return NULL;
> > > }
> > >
> > > Now in handle_web I made the top look like this:
> > >
> > > void* handle_web(void* unused)
> > > {
> > >  int max_fd;
> > >  WEB_DESCRIPTOR *current, **prev, *next;
> > >  WEB_USER *webuser, *webuser_next, **webuser_prev;
> > >  fd_set readfds, writefds, execfds;
> > >  struct timeval ZERO_TIME = { 0, 0 };
> > >
> > >  FD_ZERO(&readfds);
> > >  FD_ZERO(&writefds);
> > >  FD_ZERO(&execfds);
> > >  FD_SET(sockfd, &readfds);
> > >
> > >  /* it *will* be atleast sockfd */
> > >  max_fd = sockfd;
> > >
> > >  while(!web_server_down)
> > >  {
> > >  /* add in all the current web descriptors */
> > >
> > >   sem_wait(&web_queue);
> > >
> > >   for(current = web_descs; current != NULL; current = current->next)
> > >   {
> > >        FD_SET(current->fd, &readfds);
> > >        FD_SET(current->fd, &writefds);
> > >        FD_SET(current->fd, &execfds);
> > >        if(max_fd < current->fd)
> > >     max_fd = current->fd;
> > >   }
> > >
> > >
> > > And then in game_loop_unix where i used to call handle_web I change
that
> >
> > to:
> > >   update_handler( );
> > > //  handle_web(); // check webserver
> > >   sem_post(&web_queue);
> > >
> > >
> > > So anyone see where I messed up?
> > >
> > >
> > > --
> > > ROM mailing list
> > > [email protected]
> > > http://www.rom.org/cgi-bin/mailman/listinfo/rom
>
>
> -- 
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom
>
>



Reply via email to