From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.devel Subject: Re: Concurrent MVars for Guile Date: Tue, 21 Jan 2014 00:38:01 -0500 Message-ID: <87r481opxi.fsf@netris.org> References: <87fvtn1wv8.fsf@tines.lan> <52D8CEC6.9080800@fuuzetsu.co.uk> <878uuequb2.fsf@netris.org> <52D9D346.3040800@fuuzetsu.co.uk> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1390282845 5991 80.91.229.3 (21 Jan 2014 05:40:45 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 21 Jan 2014 05:40:45 +0000 (UTC) Cc: guile-devel@gnu.org To: Mateusz Kowalczyk Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Jan 21 06:40:52 2014 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1W5U4w-00008R-8w for guile-devel@m.gmane.org; Tue, 21 Jan 2014 06:40:50 +0100 Original-Received: from localhost ([::1]:55786 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5U4v-0001Nf-UJ for guile-devel@m.gmane.org; Tue, 21 Jan 2014 00:40:49 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38270) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5U4l-0001NF-Vd for guile-devel@gnu.org; Tue, 21 Jan 2014 00:40:45 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W5U4f-0004Gu-VG for guile-devel@gnu.org; Tue, 21 Jan 2014 00:40:39 -0500 Original-Received: from world.peace.net ([96.39.62.75]:55410) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5U4f-0004Gg-PI for guile-devel@gnu.org; Tue, 21 Jan 2014 00:40:33 -0500 Original-Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=yeeloong) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1W5U4Y-00066I-NV; Tue, 21 Jan 2014 00:40:26 -0500 In-Reply-To: <52D9D346.3040800@fuuzetsu.co.uk> (Mateusz Kowalczyk's message of "Sat, 18 Jan 2014 01:05:10 +0000") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 96.39.62.75 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:16822 Archived-At: Mateusz Kowalczyk writes: > Thanks for the investigation. While I have not gotten a chance to play > with this myself, it does seem like your MVar implementation has a sound > basis. That's good! Thanks for making sure we understood the requirements. > While it'd be great to have someone familiar with the inner-workings to > step in and confirm your findings, it seems that your implementation > should work, at least from the scheduling perspective. I can not guess > what the actual performance might be as I'm not familiar with Guile's > performance profile but I suppose that's another issue. I wouldn't expect very high performance from the current implementation, which was written in Scheme in the most straightforward manner possible, and built upon fairly heavy "fat" mutexes and condition variables. I could write a much faster implementation in C, based on other pthread primitives and perhaps optimized using primitives from libatomicops, and perhaps we should do that at some point. Mark