From owner-freebsd-hackers Mon Jun 3 03:30:07 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id DAA27245 for hackers-outgoing; Mon, 3 Jun 1996 03:30:07 -0700 (PDT) Received: from soleil.uvsq.fr (soleil.uvsq.fr [193.51.24.1]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id DAA27189 for ; Mon, 3 Jun 1996 03:29:48 -0700 (PDT) Received: from guillotin.prism.uvsq.fr (guillotin.prism.uvsq.fr [193.51.25.1]) by soleil.uvsq.fr (8.7.5/jtpda-5.2) with ESMTP id MAA02044 for ; Mon, 3 Jun 1996 12:29:40 +0200 (METDST) Received: from angrand.prism.uvsq.fr (angrand.prism.uvsq.fr [193.51.25.85]) by guillotin.prism.uvsq.fr (8.7.5/jtpda-5.2) with ESMTP id MAA16576 for ; Mon, 3 Jun 1996 12:29:39 +0200 (MET DST) From: Nicolas.Souchu@prism.uvsq.fr (Nicolas SOUCHU) Received: from (son@localhost) by angrand.prism.uvsq.fr (8.7.5/jtpda-5.2) id NAA00333 ; Mon, 3 Jun 1996 13:32:24 +0200 (MET DST) Date: Mon, 3 Jun 1996 13:32:24 +0200 (MET DST) Message-Id: <199606031132.NAA00333@angrand.prism.uvsq.fr> To: hackers@freebsd.org Subject: How to preempt the current process ? Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk An adapter that does not support interrupts must be polled. Then when data is not available, I want the current process to be preempted without sleeping, just scheduled (its state remains SRUN). Is that enough? : s = splhigh (); mi_switch (); curpriority = p->p_usrpri; splx (s); This is the sleep() code without queueing the process with state=SSLEEP. Secondly, what does mean : __asm__ ("":::"memory") ? This is the macro 'barrier()' in Linux. Thanks in advance... nicolas -- Nicolas.Souchu@prism.uvsq.fr Laboratoire PRiSM - Versailles, FRANCE http://www.prism.uvsq.fr/public/son