dedicated kthread interface and enablement of lrud auto-recycler
[lunaix-os.git] / lunaix-os / kernel / process / sched.c
index 112741c553de299db541357d39baca3487d9f373..ccf0e45aac1935ace616b2800188521f1e2263df 100644 (file)
@@ -224,33 +224,6 @@ done:
     fail("unexpected return from scheduler");
 }
 
-__DEFINE_LXSYSCALL1(unsigned int, sleep, unsigned int, seconds)
-{
-    if (!seconds) {
-        return 0;
-    }
-
-    time_t systime = clock_systime() / 1000;
-    struct haybed* bed = &current_thread->sleep;
-
-    if (bed->wakeup_time) {
-        return (bed->wakeup_time - systime);
-    }
-
-    bed->wakeup_time = systime + seconds;
-
-    if (llist_empty(&bed->sleepers)) {
-        llist_append(&sched_ctx.sleepers, &bed->sleepers);
-    }
-
-    store_retval(seconds);
-
-    block_current_thread();
-    schedule();
-
-    return 0;
-}
-
 __DEFINE_LXSYSCALL1(unsigned int, alarm, unsigned int, seconds)
 {
     struct haybed* bed = &current_thread->sleep;
@@ -396,7 +369,7 @@ alloc_process()
     proc->root = vfs_sysroot;
 
     proc->sigreg = vzalloc(sizeof(struct sigregistry));
-    proc->fdtable = vzalloc(sizeof(struct v_fdtable));
+    proc->fdtable = fdtable_create();
 
     proc->mm = procvm_create(proc);
     
@@ -632,4 +605,5 @@ orphaned_proc(pid_t pid)
     // 如果其父进程的状态是terminated 或 destroy中的一种
     // 或者其父进程是在该进程之后创建的,那么该进程为孤儿进程
     return proc_terminated(parent) || parent->created > proc->created;
-}
\ No newline at end of file
+}
+