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

[tyndur-devel] [PATCH] kernel2: Pseudo-Locking aus RPC-Code rauswerfen



* kernel2: Das Locking so ist unnoetig, wenn wir irgendwann mehrere
           Threads im Kernel haben, brauchen wir eh vernuenftiges
	   Locking, also weg damit.

Signed-off-by: Antoine Kaufmann <toni@xxxxxxxxxx>
---
 src/kernel2/src/syscalls/rpc.c |   14 +-------------
 1 files changed, 1 insertions(+), 13 deletions(-)

diff --git a/src/kernel2/src/syscalls/rpc.c b/src/kernel2/src/syscalls/rpc.c
index 6bc7340..0f542d9 100644
--- a/src/kernel2/src/syscalls/rpc.c
+++ b/src/kernel2/src/syscalls/rpc.c
@@ -190,17 +190,9 @@ int do_fastrpc(pid_t callee_pid, size_t metadata_size, void* metadata,
         ignore_blocked = true;
     }
 
-    // Waehrend wir am Stack rumbasteln, sollte niemand dazwischenfunken und
-    // erst recht nicht der Task weiterlaufen (momentan unnötig, da im Kernel
-    // keine Interrupts erlaubt sind). AuÃ?erdem wird damit sichergestellt,
-    // dass ein Task, der p() aufgerufen hat, keinen RPC bekommt.
-    //
     // Wenn der Task nicht blockiert werden kann, soll der Aufrufer es später
     // nochmal versuchen.
-    if (!ignore_blocked &&
-        ((callee->process->blocked_by_pid) ||
-        !pm_block_rpc(callee->process, syscall_pm_get_pid())))
-    {
+    if (!ignore_blocked && callee->process->blocked_by_pid) {
         goto fail_retry;
     }
 
@@ -290,10 +282,6 @@ int do_fastrpc(pid_t callee_pid, size_t metadata_size, void* metadata,
         callee->status = PM_STATUS_READY;
     }
 
-    if (!ignore_blocked) {
-        pm_unblock_rpc(callee->process, syscall_pm_get_pid());
-    }
-
     // Zum aufgerufenen Task wechseln
     pm_scheduler_push(current_thread);
     pm_scheduler_get(callee);
-- 
1.6.4.4