]> xenbits.xensource.com Git - unikraft/libs/pthread-embedded.git/commitdiff
Add pthread_atfork() function
authorCostin Lupu <costin.lupu@cs.pub.ro>
Tue, 9 Jul 2019 09:09:33 +0000 (12:09 +0300)
committerFelipe Huici <felipe.huici@neclab.eu>
Wed, 10 Jul 2019 16:11:00 +0000 (18:11 +0200)
For now, Unikraft does not support fork(), so we will just print an
warning saying that.

Signed-off-by: Costin Lupu <costin.lupu@cs.pub.ro>
Reviewed-by: Felipe Huici <felipe.huici@neclab.eu>
Makefile.uk
exportsyms.uk
include/pthread.h
pthread_atfork.c [new file with mode: 0644]

index 8ee5d362813170abb945e1bf71bbe150904fab7c..9b6b3b6833e01e5f9da764d3a2b8ddc6971a42b7 100644 (file)
@@ -66,6 +66,7 @@ LIBPTHREAD-EMBEDDED_EXPORTS = $(LIBPTHREAD-EMBEDDED_BASE)/exportsyms.uk
 ################################################################################
 LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_BASE)/pte_osal.c|glue
 LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_BASE)/attributes.c|glue
+LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_BASE)/pthread_atfork.c|glue
 
 ################################################################################
 # pthread-embedded code
index 24b5c0209b11da68dad185c13e1cd4a580a12f91..1855b636a08ae71a2907c2895666301c6af9696d 100644 (file)
@@ -83,6 +83,7 @@ pthread_rwlockattr_destroy
 pthread_rwlockattr_getpshared
 pthread_rwlockattr_setpshared
 pthread_kill
+pthread_atfork
 sched_yield
 sched_get_priority_min
 sched_get_priority_max
index 799f39b6bafb9f5d4f11f69c69308660a04e6dcf..c1ebcea2426e23542c3ec6014d499ad4a37649b6 100644 (file)
@@ -29,6 +29,9 @@ extern "C" {
 /* The C code in pthread.h is not guarded for C++ */
 #include_next <pthread.h>
 
+int pthread_atfork(void (*prepare)(void),
+       void (*parent)(void), void (*child)(void));
+
 /* C functions not implemented in pthread-embedded */
 int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
 int pthread_attr_getguardsize(const pthread_attr_t *attr, size_t *guardsize);
diff --git a/pthread_atfork.c b/pthread_atfork.c
new file mode 100644 (file)
index 0000000..0daf1b8
--- /dev/null
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: LGPL-2.0-or-later */
+/*
+ *      Unikraft port of POSIX Threads Library for embedded systems
+ *      Copyright(C) 2019 Costin Lupu, University Politehnica of Bucharest
+ *
+ *      This library is free software; you can redistribute it and/or
+ *      modify it under the terms of the GNU Lesser General Public
+ *      License as published by the Free Software Foundation; either
+ *      version 2 of the License, or (at your option) any later version.
+ *
+ *      This library is distributed in the hope that it will be useful,
+ *      but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *      Lesser General Public License for more details.
+ *
+ *      You should have received a copy of the GNU Lesser General Public
+ *      License along with this library in the file COPYING.LIB;
+ *      if not, write to the Free Software Foundation, Inc.,
+ *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <pthread.h>
+#include <uk/print.h>
+
+
+int pthread_atfork(void (*prepare)(void),
+       void (*parent)(void), void (*child)(void))
+{
+       uk_pr_warn("Unikraft does not support fork yet!");
+       return 0;
+}