-/* $Id: lcd4linux.c,v 1.81 2006/08/13 06:46:51 reinelt Exp $
+/* $Id: lcd4linux.c,v 1.82 2006/09/13 20:04:57 entropy Exp $
*
* LCD4Linux
*
*
*
* $Log: lcd4linux.c,v $
+ * Revision 1.82 2006/09/13 20:04:57 entropy
+ * threads change argv[0] to their thread name, for a neat 'ps' output
+ *
* Revision 1.81 2006/08/13 06:46:51 reinelt
* T6963 soft-timing & enhancements; indent
*
#include "timer.h"
#include "layout.h"
#include "plugin.h"
+#include "thread.h"
#include "widget.h"
#include "widget_timer.h"
my_argv[c] = strdup(argv[c]);
}
my_argv[c] = NULL;
+
+ /* save original arguments pointer for threads */
+ thread_argv=argv;
+ thread_argc=argc;
running_foreground = 0;
running_background = 0;
-/* $Id: thread.c,v 1.8 2006/07/12 21:01:41 reinelt Exp $
+/* $Id: thread.c,v 1.9 2006/09/13 20:04:57 entropy Exp $
*
* thread handling (mutex, shmem, ...)
*
*
*
* $Log: thread.c,v $
+ * Revision 1.9 2006/09/13 20:04:57 entropy
+ * threads change argv[0] to their thread name, for a neat 'ps' output
+ *
* Revision 1.8 2006/07/12 21:01:41 reinelt
* thread_destroy, minor cleanups
*
#endif
+int thread_argc;
+char **thread_argv;
+
+
/* glibc 2.1 requires defining semun ourselves */
#ifdef _SEM_SEMUN_UNDEFINED
union semun {
pid_t pid, ppid;
ppid = getpid();
-
+
switch (pid = fork()) {
case -1:
error("fatal error: fork(%s) failed: %s", name, strerror(errno));
return -1;
case 0:
info("thread %s starting...", name);
+ if (thread_argc > 0) {
+ strncpy(thread_argv[0],name,strlen(thread_argv[0]));
+ }
thread(data);
info("thread %s ended.", name);
exit(0);
-/* $Id: thread.h,v 1.7 2006/07/12 21:01:41 reinelt Exp $
+/* $Id: thread.h,v 1.8 2006/09/13 20:04:57 entropy Exp $
*
* thread handling (mutex, shmem, ...)
*
*
*
* $Log: thread.h,v $
+ * Revision 1.8 2006/09/13 20:04:57 entropy
+ * threads change argv[0] to their thread name, for a neat 'ps' output
+ *
* Revision 1.7 2006/07/12 21:01:41 reinelt
* thread_destroy, minor cleanups
*
#ifndef _THREAD_H_
#define _THREAD_H_
+
+extern int thread_argc;
+extern char **thread_argv;
+
int mutex_create(void);
void mutex_lock(const int semid);
void mutex_unlock(const int semid);