[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.
* ENTRY is the entry point. It will be called with argument UD.
* Thread stack is at least SIZE bytes.
* 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
- * for logging and debugging.
+ * NAME is the thread's name, it is used for logging and debugging.
* UD is the value to pass to ENTRY. It is also assigned to the
* context variable defined with empth_init() whenever the thread gets
* scheduled.
* Return the thread, or NULL on error.
*/
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.
/*
* Awaken THREAD if it is sleeping in empth_select().
* Note: This must not awaken threads sleeping in other functions.
+ * Does not yield the processor.
*/
void empth_wakeup(empth_t *thread);
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);
struct lwpProc *lwpInitSystem(int prio, void **ctxp, int flags, sigset_t *);
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);
void lwpExit(void);
void lwpTerminate(struct lwpProc * p);
int lwpSigWait(sigset_t *set, int *sig);
void *lwpGetUD(struct lwpProc * p);
void lwpSetUD(struct lwpProc * p, char *ud);
-void lwpSetDesc(struct lwpProc * p, char *name, char *desc);
int lwpSetPriority(int prio);
struct lwpSem *lwpCreateSem(char *name, int count);
empth_t *
empth_create(int prio, void (*entry)(void *), int size, int flags,
- char *name, char *desc, void *ud)
+ char *name, void *ud)
{
if (!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 *
/* The thread name, passed in at create time. */
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. */
BOOL bMainThread;
memset(pThread, 0, sizeof(*pThread));
strncpy(pThread->szName, "Main", sizeof(pThread->szName) - 1);
- strncpy(pThread->szDesc, "The main process",
- sizeof(pThread->szDesc) - 1);
pThread->ulThreadID = GetCurrentThreadId();
pThread->bMainThread = TRUE;
* flags - debug control.
* LWP_STACKCHECK - not needed
* name - name of the thread, for debug.
- * desc - description of thread, for debug.
* ud - "user data". The "ctx_ptr" gets this value
* when the thread is active.
* It is also passed to the entry function...
*/
empth_t *
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;
- loc_debug("creating new thread %s:%s", name, desc);
+ loc_debug("creating new thread %s", name);
pThread = malloc(sizeof(*pThread));
if (!pThread) {
- logerror("not enough memory to create thread: %s (%s)",
- name, desc);
+ logerror("not enough memory to create thread %s", name);
return NULL;
}
memset(pThread, 0, sizeof(*pThread));
strncpy(pThread->szName, name, sizeof(pThread->szName) - 1);
- strncpy(pThread->szDesc, desc, sizeof(pThread->szDesc) - 1);
pThread->pvUserData = ud;
pThread->pfnEntry = entry;
pThread->bMainThread = FALSE;
pThread->ulThreadID = _beginthread(empth_threadMain, size, pThread);
if (pThread->ulThreadID == -1) {
- logerror("can not create thread: %s (%s): %s",
- name, desc, strerror(errno));
+ logerror("can not create thread: %s: %s", name, strerror(errno));
goto bad;
}
struct empth_t {
char *name; /* thread name */
- char *desc; /* description */
void *ud; /* user data */
int state; /* my state */
void (*ep)(void *); /* entry point */
exit(1);
}
ctx->name = "Main";
- ctx->desc = "empire main";
ctx->ep = 0;
ctx->ud = 0;
ctx->id = pthread_self();
*/
empth_t *
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_attr_t attr;
empth_t *ctx;
int eno;
- empth_status("creating new thread %s:%s", name, desc);
+ empth_status("creating new thread %s", name);
ctx = malloc(sizeof(empth_t));
if (!ctx) {
- logerror("not enough memory to create thread: %s (%s)",
- name, desc);
+ logerror("not enough memory to create thread %s", name);
return NULL;
}
ctx->name = strdup(name);
- ctx->desc = strdup(desc);
ctx->ud = ud;
ctx->state = 0;
ctx->ep = entry;
eno = pthread_attr_init(&attr);
if (eno) {
- logerror("can not create thread attribute %s (%s): %s",
- name, desc, strerror(eno));
+ logerror("can not create thread attribute %s: %s",
+ name, strerror(eno));
goto bad;
}
if (size < PTHREAD_STACK_MIN)
eno = pthread_create(&t, &attr, empth_start, ctx);
if (eno) {
- logerror("can not create thread: %s (%s): %s",
- name, desc, strerror(eno));
+ logerror("can not create thread: %s: %s", name, strerror(eno));
goto bad;
}
empth_status("new thread id is %ld", (long)t);
* lwpCreate -- create a process.
*/
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;
return NULL;
newp->flags = flags;
newp->name = strdup(name);
- newp->desc = strdup(desc);
newp->entry = entry;
newp->argc = argc;
newp->argv = argv;
LwpMaxpri = priority;
if (lwpNewContext(newp, stacksz) < 0) {
free(newp->name);
- free(newp->desc);
free(newp);
return NULL;
}
lwpStatus(proc, "destroying sbtm: %p", proc->sbtm);
free(proc->sbtm);
free(proc->name);
- free(proc->desc);
free(proc);
}
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.
*/
LwpDeadQ.head = LwpDeadQ.tail = 0;
lwpInitSigWait(waitset);
/* must be lower in priority than us for this to work right */
- sel = lwpCreate(0, lwpSelect, 16384, flags, "EventHandler",
- "Select (main loop) Event Handler", 0, 0, 0);
+ sel = lwpCreate(0, lwpSelect, 16384, flags, "EventHandler", 0, 0, 0);
lwpInitSelect(sel);
return LwpCurrent;
}
int argc; /* initial arguments */
char **argv;
void *ud; /* user data */
- char *name; /* process name and description */
- char *desc;
+ char *name; /* process name, for debugging */
int flags;
struct lwpProc *next;
};
/* power */ MAXNOC * sizeof(struct powstr));
sprintf(buf, "Player (fd #%d)", ns);
empth_create(PP_PLAYER, player_login, stacksize,
- 0, buf, "Empire player", np);
+ 0, buf, np);
}
}
exit(1);
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,
- "KillIdle", "Kills idle player connections", 0);
+ "KillIdle", 0);
empth_create(PP_TIMESTAMP, delete_lostitems, (50 * 1024), flags,
- "DeleteItems", "Deletes old lost items", 0);
+ "DeleteItems", 0);
if (opt_MOB_ACCESS) {
- /* Start the mobility access check thread */
empth_create(PP_TIMESTAMP, mobility_check, (50 * 1024), flags,
- "MobilityCheck", "Writes the timestamp file", 0);
+ "MobilityCheck", 0);
}
market_init();
if (!dp)
exit_nomem();
if (!empth_create(PP_UPDATE, market_update, 50 * 1024, 0,
- "MarketUpdate", "Updates the market", dp))
+ "MarketUpdate", dp))
exit_nomem();
}
mins_from_now);
/* FIXME wake up shutdown_sequence() */
} else {
- if (!empth_create(PP_SHUTDOWN, shutdown_sequence, 50 * 1024,
- 0, "shutdownSeq", "Counts down server shutdown",
- NULL))
+ if (!empth_create(PP_SHUTDOWN, shutdown_sequence, 50 * 1024, 0,
+ "shutdownSeq", NULL))
return -1;
}
/* finish_sects */ WORLD_X * WORLD_Y * (2 * sizeof(double) +
sizeof(char *));
if (!empth_create(PP_UPDATE, update_wait, stacksize, 0,
- "Update", "Updates the world", dp))
+ "Update", dp))
exit_nomem();
if (!empth_create(PP_SCHED, update_sched, 50 * 1024, 0,
- "UpdateSched", "Schedules updates to occur", NULL))
+ "UpdateSched", NULL))
exit_nomem();
}
if (!secp)
return -1;
*secp = secs_from_now;
- if (!empth_create(PP_SCHED, update_force, 50 * 1024, 0, "forceUpdate",
- "Schedules an update", secp))
+ if (!empth_create(PP_SCHED, update_force, 50 * 1024, 0,
+ "forceUpdate", secp))
return -1;
return 0;
}