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
>


Reply via email to