(lwpSetDesc): Unused, remove.

[EMPTH_LWP] (lwpProc): Remove member desc.
[EMPTH_LWP] (lwpCreate, lwpDestroy): Don't initialize / finalize it.

[EMPTH_POSIX] (empth_t): Remove member desc.
[EMPTH_POSIX] (empth_init, empth_create): Don't initialize it.

[EMPTH_W32] (loc_Thread): Remove member szDesc.
[EMPTH_W32] (empth_init, empth_create): Don't initialize it.

(empth_create, lwpCreate): Remove parameter desc.  Callers changed.
This commit is contained in:
Markus Armbruster 2007-01-28 16:40:27 +00:00
parent ee46f55e6e
commit d0ab92b944
12 changed files with 33 additions and 67 deletions

View file

@ -132,8 +132,7 @@ int empth_init(void **ctx, int flags);
* ENTRY is the entry point. It will be called with argument UD. * ENTRY is the entry point. It will be called with argument UD.
* Thread stack is at least SIZE bytes. * Thread stack is at least SIZE bytes.
* FLAGS should be the same as were passed to empth_init(), or zero. * FLAGS should be the same as were passed to empth_init(), or zero.
* NAME is the threads name, and DESC its description. These are used * NAME is the thread's name, it is used for logging and debugging.
* for logging and debugging.
* UD is the value to pass to ENTRY. It is also assigned to the * UD is the value to pass to ENTRY. It is also assigned to the
* context variable defined with empth_init() whenever the thread gets * context variable defined with empth_init() whenever the thread gets
* scheduled. * scheduled.
@ -141,7 +140,7 @@ int empth_init(void **ctx, int flags);
* Return the thread, or NULL on error. * Return the thread, or NULL on error.
*/ */
empth_t *empth_create(int prio, void (*entry)(void *), empth_t *empth_create(int prio, void (*entry)(void *),
int size, int flags, char *name, char *desc, void *ud); int size, int flags, char *name, void *ud);
/* /*
* Return the current thread. * Return the current thread.
@ -184,6 +183,7 @@ void empth_select(int fd, int flags);
/* /*
* Awaken THREAD if it is sleeping in empth_select(). * Awaken THREAD if it is sleeping in empth_select().
* Note: This must not awaken threads sleeping in other functions. * Note: This must not awaken threads sleeping in other functions.
* Does not yield the processor.
*/ */
void empth_wakeup(empth_t *thread); void empth_wakeup(empth_t *thread);
@ -194,7 +194,7 @@ void empth_wakeup(empth_t *thread);
void empth_sleep(time_t until); void empth_sleep(time_t until);
/* /*
* Wait for signal, return the signal number * Wait for signal, return the signal number.
*/ */
int empth_wait_for_signal(void); int empth_wait_for_signal(void);

View file

@ -41,7 +41,7 @@ struct lwp_rwlock;
struct lwpProc *lwpInitSystem(int prio, void **ctxp, int flags, sigset_t *); struct lwpProc *lwpInitSystem(int prio, void **ctxp, int flags, sigset_t *);
struct lwpProc *lwpCreate(int prio, void (*)(void *), int size, struct lwpProc *lwpCreate(int prio, void (*)(void *), int size,
int flags, char *name, char *desc, int flags, char *name,
int argc, char **argv, void *ud); int argc, char **argv, void *ud);
void lwpExit(void); void lwpExit(void);
void lwpTerminate(struct lwpProc * p); void lwpTerminate(struct lwpProc * p);
@ -52,7 +52,6 @@ void lwpWakeupFd(struct lwpProc * p);
int lwpSigWait(sigset_t *set, int *sig); int lwpSigWait(sigset_t *set, int *sig);
void *lwpGetUD(struct lwpProc * p); void *lwpGetUD(struct lwpProc * p);
void lwpSetUD(struct lwpProc * p, char *ud); void lwpSetUD(struct lwpProc * p, char *ud);
void lwpSetDesc(struct lwpProc * p, char *name, char *desc);
int lwpSetPriority(int prio); int lwpSetPriority(int prio);
struct lwpSem *lwpCreateSem(char *name, int count); struct lwpSem *lwpCreateSem(char *name, int count);

View file

@ -61,11 +61,11 @@ empth_init(void **ctx, int flags)
empth_t * empth_t *
empth_create(int prio, void (*entry)(void *), int size, int flags, empth_create(int prio, void (*entry)(void *), int size, int flags,
char *name, char *desc, void *ud) char *name, void *ud)
{ {
if (!flags) if (!flags)
flags = empth_flags; flags = empth_flags;
return lwpCreate(prio, entry, size, flags, name, desc, 0, 0, ud); return lwpCreate(prio, entry, size, flags, name, 0, 0, ud);
} }
empth_t * empth_t *

View file

@ -69,8 +69,6 @@ struct loc_Thread {
/* The thread name, passed in at create time. */ /* The thread name, passed in at create time. */
char szName[17]; char szName[17];
/* The thread description, passed in at create time. */
char szDesc[80];
/* True if this is the main line, and not a real thread. */ /* True if this is the main line, and not a real thread. */
BOOL bMainThread; BOOL bMainThread;
@ -418,8 +416,6 @@ empth_init(void **ctx_ptr, int flags)
memset(pThread, 0, sizeof(*pThread)); memset(pThread, 0, sizeof(*pThread));
strncpy(pThread->szName, "Main", sizeof(pThread->szName) - 1); strncpy(pThread->szName, "Main", sizeof(pThread->szName) - 1);
strncpy(pThread->szDesc, "The main process",
sizeof(pThread->szDesc) - 1);
pThread->ulThreadID = GetCurrentThreadId(); pThread->ulThreadID = GetCurrentThreadId();
pThread->bMainThread = TRUE; pThread->bMainThread = TRUE;
@ -444,29 +440,26 @@ empth_init(void **ctx_ptr, int flags)
* flags - debug control. * flags - debug control.
* LWP_STACKCHECK - not needed * LWP_STACKCHECK - not needed
* name - name of the thread, for debug. * name - name of the thread, for debug.
* desc - description of thread, for debug.
* ud - "user data". The "ctx_ptr" gets this value * ud - "user data". The "ctx_ptr" gets this value
* when the thread is active. * when the thread is active.
* It is also passed to the entry function... * It is also passed to the entry function...
*/ */
empth_t * empth_t *
empth_create(int prio, void (*entry)(void *), int size, int flags, empth_create(int prio, void (*entry)(void *), int size, int flags,
char *name, char *desc, void *ud) char *name, void *ud)
{ {
empth_t *pThread = NULL; empth_t *pThread = NULL;
loc_debug("creating new thread %s:%s", name, desc); loc_debug("creating new thread %s", name);
pThread = malloc(sizeof(*pThread)); pThread = malloc(sizeof(*pThread));
if (!pThread) { if (!pThread) {
logerror("not enough memory to create thread: %s (%s)", logerror("not enough memory to create thread %s", name);
name, desc);
return NULL; return NULL;
} }
memset(pThread, 0, sizeof(*pThread)); memset(pThread, 0, sizeof(*pThread));
strncpy(pThread->szName, name, sizeof(pThread->szName) - 1); strncpy(pThread->szName, name, sizeof(pThread->szName) - 1);
strncpy(pThread->szDesc, desc, sizeof(pThread->szDesc) - 1);
pThread->pvUserData = ud; pThread->pvUserData = ud;
pThread->pfnEntry = entry; pThread->pfnEntry = entry;
pThread->bMainThread = FALSE; pThread->bMainThread = FALSE;
@ -479,8 +472,7 @@ empth_create(int prio, void (*entry)(void *), int size, int flags,
pThread->ulThreadID = _beginthread(empth_threadMain, size, pThread); pThread->ulThreadID = _beginthread(empth_threadMain, size, pThread);
if (pThread->ulThreadID == -1) { if (pThread->ulThreadID == -1) {
logerror("can not create thread: %s (%s): %s", logerror("can not create thread: %s: %s", name, strerror(errno));
name, desc, strerror(errno));
goto bad; goto bad;
} }

View file

@ -61,7 +61,6 @@
struct empth_t { struct empth_t {
char *name; /* thread name */ char *name; /* thread name */
char *desc; /* description */
void *ud; /* user data */ void *ud; /* user data */
int state; /* my state */ int state; /* my state */
void (*ep)(void *); /* entry point */ void (*ep)(void *); /* entry point */
@ -177,7 +176,6 @@ empth_init(void **ctx_ptr, int flags)
exit(1); exit(1);
} }
ctx->name = "Main"; ctx->name = "Main";
ctx->desc = "empire main";
ctx->ep = 0; ctx->ep = 0;
ctx->ud = 0; ctx->ud = 0;
ctx->id = pthread_self(); ctx->id = pthread_self();
@ -197,31 +195,29 @@ empth_init(void **ctx_ptr, int flags)
*/ */
empth_t * empth_t *
empth_create(int prio, void (*entry)(void *), int size, int flags, empth_create(int prio, void (*entry)(void *), int size, int flags,
char *name, char *desc, void *ud) char *name, void *ud)
{ {
pthread_t t; pthread_t t;
pthread_attr_t attr; pthread_attr_t attr;
empth_t *ctx; empth_t *ctx;
int eno; int eno;
empth_status("creating new thread %s:%s", name, desc); empth_status("creating new thread %s", name);
ctx = malloc(sizeof(empth_t)); ctx = malloc(sizeof(empth_t));
if (!ctx) { if (!ctx) {
logerror("not enough memory to create thread: %s (%s)", logerror("not enough memory to create thread %s", name);
name, desc);
return NULL; return NULL;
} }
ctx->name = strdup(name); ctx->name = strdup(name);
ctx->desc = strdup(desc);
ctx->ud = ud; ctx->ud = ud;
ctx->state = 0; ctx->state = 0;
ctx->ep = entry; ctx->ep = entry;
eno = pthread_attr_init(&attr); eno = pthread_attr_init(&attr);
if (eno) { if (eno) {
logerror("can not create thread attribute %s (%s): %s", logerror("can not create thread attribute %s: %s",
name, desc, strerror(eno)); name, strerror(eno));
goto bad; goto bad;
} }
if (size < PTHREAD_STACK_MIN) if (size < PTHREAD_STACK_MIN)
@ -231,8 +227,7 @@ empth_create(int prio, void (*entry)(void *), int size, int flags,
eno = pthread_create(&t, &attr, empth_start, ctx); eno = pthread_create(&t, &attr, empth_start, ctx);
if (eno) { if (eno) {
logerror("can not create thread: %s (%s): %s", logerror("can not create thread: %s: %s", name, strerror(eno));
name, desc, strerror(eno));
goto bad; goto bad;
} }
empth_status("new thread id is %ld", (long)t); empth_status("new thread id is %ld", (long)t);

View file

@ -131,7 +131,8 @@ lwpEntryPoint(void)
* lwpCreate -- create a process. * lwpCreate -- create a process.
*/ */
struct lwpProc * struct lwpProc *
lwpCreate(int priority, void (*entry)(void *), int stacksz, int flags, char *name, char *desc, int argc, char **argv, void *ud) lwpCreate(int priority, void (*entry)(void *), int stacksz,
int flags, char *name, int argc, char **argv, void *ud)
{ {
struct lwpProc *newp; struct lwpProc *newp;
@ -139,7 +140,6 @@ lwpCreate(int priority, void (*entry)(void *), int stacksz, int flags, char *nam
return NULL; return NULL;
newp->flags = flags; newp->flags = flags;
newp->name = strdup(name); newp->name = strdup(name);
newp->desc = strdup(desc);
newp->entry = entry; newp->entry = entry;
newp->argc = argc; newp->argc = argc;
newp->argv = argv; newp->argv = argv;
@ -153,7 +153,6 @@ lwpCreate(int priority, void (*entry)(void *), int stacksz, int flags, char *nam
LwpMaxpri = priority; LwpMaxpri = priority;
if (lwpNewContext(newp, stacksz) < 0) { if (lwpNewContext(newp, stacksz) < 0) {
free(newp->name); free(newp->name);
free(newp->desc);
free(newp); free(newp);
return NULL; return NULL;
} }
@ -177,7 +176,6 @@ lwpDestroy(struct lwpProc *proc)
lwpStatus(proc, "destroying sbtm: %p", proc->sbtm); lwpStatus(proc, "destroying sbtm: %p", proc->sbtm);
free(proc->sbtm); free(proc->sbtm);
free(proc->name); free(proc->name);
free(proc->desc);
free(proc); free(proc);
} }
@ -215,20 +213,6 @@ lwpSetUD(struct lwpProc *p, char *ud)
p->ud = ud; p->ud = ud;
} }
/*
* set name & desc
*/
void
lwpSetDesc(struct lwpProc *p, char *name, char *desc)
{
if (!p)
p = LwpCurrent;
free(p->name);
free(p->desc);
p->name = strdup(name);
p->desc = strdup(desc);
}
/* /*
* lwpYield -- yield the processor to another thread. * lwpYield -- yield the processor to another thread.
*/ */
@ -317,8 +301,7 @@ lwpInitSystem(int pri, void **ctxptr, int flags, sigset_t *waitset)
LwpDeadQ.head = LwpDeadQ.tail = 0; LwpDeadQ.head = LwpDeadQ.tail = 0;
lwpInitSigWait(waitset); lwpInitSigWait(waitset);
/* must be lower in priority than us for this to work right */ /* must be lower in priority than us for this to work right */
sel = lwpCreate(0, lwpSelect, 16384, flags, "EventHandler", sel = lwpCreate(0, lwpSelect, 16384, flags, "EventHandler", 0, 0, 0);
"Select (main loop) Event Handler", 0, 0, 0);
lwpInitSelect(sel); lwpInitSelect(sel);
return LwpCurrent; return LwpCurrent;
} }

View file

@ -63,8 +63,7 @@ struct lwpProc {
int argc; /* initial arguments */ int argc; /* initial arguments */
char **argv; char **argv;
void *ud; /* user data */ void *ud; /* user data */
char *name; /* process name and description */ char *name; /* process name, for debugging */
char *desc;
int flags; int flags;
struct lwpProc *next; struct lwpProc *next;
}; };

View file

@ -242,6 +242,6 @@ player_accept(void *unused)
/* power */ MAXNOC * sizeof(struct powstr)); /* power */ MAXNOC * sizeof(struct powstr));
sprintf(buf, "Player (fd #%d)", ns); sprintf(buf, "Player (fd #%d)", ns);
empth_create(PP_PLAYER, player_login, stacksize, empth_create(PP_PLAYER, player_login, stacksize,
0, buf, "Empire player", np); 0, buf, np);
} }
} }

View file

@ -324,15 +324,14 @@ start_server(int flags)
exit(1); exit(1);
empth_create(PP_ACCEPT, player_accept, (50 * 1024), flags, empth_create(PP_ACCEPT, player_accept, (50 * 1024), flags,
"AcceptPlayers", "Accept network connections", 0); "AcceptPlayers", 0);
empth_create(PP_KILLIDLE, player_kill_idle, (50 * 1024), flags, empth_create(PP_KILLIDLE, player_kill_idle, (50 * 1024), flags,
"KillIdle", "Kills idle player connections", 0); "KillIdle", 0);
empth_create(PP_TIMESTAMP, delete_lostitems, (50 * 1024), flags, empth_create(PP_TIMESTAMP, delete_lostitems, (50 * 1024), flags,
"DeleteItems", "Deletes old lost items", 0); "DeleteItems", 0);
if (opt_MOB_ACCESS) { if (opt_MOB_ACCESS) {
/* Start the mobility access check thread */
empth_create(PP_TIMESTAMP, mobility_check, (50 * 1024), flags, empth_create(PP_TIMESTAMP, mobility_check, (50 * 1024), flags,
"MobilityCheck", "Writes the timestamp file", 0); "MobilityCheck", 0);
} }
market_init(); market_init();

View file

@ -72,6 +72,6 @@ market_init(void)
if (!dp) if (!dp)
exit_nomem(); exit_nomem();
if (!empth_create(PP_UPDATE, market_update, 50 * 1024, 0, if (!empth_create(PP_UPDATE, market_update, 50 * 1024, 0,
"MarketUpdate", "Updates the market", dp)) "MarketUpdate", dp))
exit_nomem(); exit_nomem();
} }

View file

@ -65,9 +65,8 @@ shutdown_initiate(int mins_from_now)
mins_from_now); mins_from_now);
/* FIXME wake up shutdown_sequence() */ /* FIXME wake up shutdown_sequence() */
} else { } else {
if (!empth_create(PP_SHUTDOWN, shutdown_sequence, 50 * 1024, if (!empth_create(PP_SHUTDOWN, shutdown_sequence, 50 * 1024, 0,
0, "shutdownSeq", "Counts down server shutdown", "shutdownSeq", NULL))
NULL))
return -1; return -1;
} }

View file

@ -77,11 +77,11 @@ update_init(void)
/* finish_sects */ WORLD_X * WORLD_Y * (2 * sizeof(double) + /* finish_sects */ WORLD_X * WORLD_Y * (2 * sizeof(double) +
sizeof(char *)); sizeof(char *));
if (!empth_create(PP_UPDATE, update_wait, stacksize, 0, if (!empth_create(PP_UPDATE, update_wait, stacksize, 0,
"Update", "Updates the world", dp)) "Update", dp))
exit_nomem(); exit_nomem();
if (!empth_create(PP_SCHED, update_sched, 50 * 1024, 0, if (!empth_create(PP_SCHED, update_sched, 50 * 1024, 0,
"UpdateSched", "Schedules updates to occur", NULL)) "UpdateSched", NULL))
exit_nomem(); exit_nomem();
} }
@ -150,8 +150,8 @@ update_trigger(time_t secs_from_now)
if (!secp) if (!secp)
return -1; return -1;
*secp = secs_from_now; *secp = secs_from_now;
if (!empth_create(PP_SCHED, update_force, 50 * 1024, 0, "forceUpdate", if (!empth_create(PP_SCHED, update_force, 50 * 1024, 0,
"Schedules an update", secp)) "forceUpdate", secp))
return -1; return -1;
return 0; return 0;
} }