[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT/PTHREAD-EMBEDDED] Add pthread_atfork() function



Hi Costin,

This patch looks fine.

Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx>

-- Felipe

On 09.07.19, 11:09, "Costin Lupu" <costin.lupu@xxxxxxxxx> wrote:

    For now, Unikraft does not support fork(), so we will just print an
    warning saying that.
    
    Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
    ---
     Makefile.uk       |  1 +
     exportsyms.uk     |  1 +
     include/pthread.h |  3 +++
     pthread_atfork.c  | 31 +++++++++++++++++++++++++++++++
     4 files changed, 36 insertions(+)
     create mode 100644 pthread_atfork.c
    
    diff --git a/Makefile.uk b/Makefile.uk
    index 8ee5d36..9b6b3b6 100644
    --- a/Makefile.uk
    +++ b/Makefile.uk
    @@ -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
    diff --git a/exportsyms.uk b/exportsyms.uk
    index 24b5c02..1855b63 100644
    --- a/exportsyms.uk
    +++ b/exportsyms.uk
    @@ -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
    diff --git a/include/pthread.h b/include/pthread.h
    index 799f39b..c1ebcea 100644
    --- a/include/pthread.h
    +++ b/include/pthread.h
    @@ -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
    index 0000000..0daf1b8
    --- /dev/null
    +++ b/pthread_atfork.c
    @@ -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;
    +}
    -- 
    2.11.0
    
    

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.