1
0

lwp_setsid.c 603 B

123456789101112131415161718192021222324252627
  1. #include <rthw.h>
  2. #include <rtthread.h>
  3. #include "lwp.h"
  4. //#include "lwp_tid.h"
  5. #include "lwp_pid.h"
  6. int setsid(void)
  7. {
  8. int err = -EPERM;
  9. struct rt_thread *current_thread = rt_thread_self();
  10. struct rt_lwp *current_lwp = (struct rt_lwp *)rt_thread_self()->lwp;
  11. if (current_lwp->session == current_thread->tid)
  12. {
  13. return err;
  14. }
  15. current_lwp->session = current_thread->tid;
  16. current_lwp->__pgrp = current_thread->tid;
  17. current_lwp->leader = 1;
  18. current_lwp->tty = RT_NULL;
  19. current_lwp->tty_old_pgrp = 0;
  20. err = current_lwp->session;
  21. return err;
  22. }