It was unused, and the code is starting to depend a lot on pthreads.
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <fcntl.h>
#include <poll.h>
#include <regex.h>
#include <fcntl.h>
#include <poll.h>
#include <regex.h>
#include "buffers.h"
#include "marker-control.h"
#include "buffers.h"
#include "marker-control.h"
#define USTSIGNAL SIGIO
#define MAX_MSG_SIZE (100)
#define USTSIGNAL SIGIO
#define MAX_MSG_SIZE (100)
}
volatile sig_atomic_t have_listener = 0;
}
volatile sig_atomic_t have_listener = 0;
+/* These should only be accessed in the parent thread,
+ * not the listener.
+ */
static pthread_t listener_thread;
static pthread_t listener_thread;
void create_listener(void)
{
void create_listener(void)
{
-#ifdef USE_CLONE
- static char listener_stack[16384];
if(have_listener) {
WARN("not creating listener because we already had one");
return;
}
if(have_listener) {
WARN("not creating listener because we already had one");
return;
}
-#ifdef USE_CLONE
- result = clone((int (*)(void *)) listener_main, listener_stack+sizeof(listener_stack)-1, CLONE_FS | CLONE_FILES | CLONE_VM | CLONE_SIGHAND | CLONE_THREAD, NULL);
+ result = pthread_create(&listener_thread, NULL, listener_main, NULL);
- perror("clone");
- return;
+ PERROR("pthread_create");
-#else
-
- pthread_create(&listener_thread, NULL, listener_main, NULL);
-#endif