No subject



Mon Jul 12 18:53:17 2004
Return-Path: xorp-cvs-admin@icir.org
Delivery-Date: Mon, 12 Jul 2004 18:54:01 -0700
Received: from wyvern.icir.org (wyvern.icir.org [192.150.187.14])
	by tigger.icir.org (8.12.9p1/8.12.8) with ESMTP id i6D1s1re098844
	for <atanu@tigger.icir.org>; Mon, 12 Jul 2004 18:54:01 -0700 (PDT)
	(envelope-from xorp-cvs-admin@icir.org)
Received: from fruitcake.icsi.Berkeley.EDU (fruitcake.ICSI.Berkeley.EDU [192.150.186.11])
	by wyvern.icir.org (8.12.9p1/8.12.8) with ESMTP id i6D1s1ms051343
	for <atanu@icir.org>; Mon, 12 Jul 2004 18:54:01 -0700 (PDT)
	(envelope-from xorp-cvs-admin@icir.org)
Received: from fruitcake.icsi.Berkeley.EDU (localhost [127.0.0.1])
	by fruitcake.icsi.Berkeley.EDU (8.12.10/8.12.9) with ESMTP id i6D1s14x003025;
	Mon, 12 Jul 2004 18:54:01 -0700 (PDT)
Received: from wyvern.icir.org (wyvern.icir.org [192.150.187.14])
	by fruitcake.icsi.Berkeley.EDU (8.12.10/8.12.9) with ESMTP id i6D1rI4x002996
	for <xorp-cvs@icsi.berkeley.edu>; Mon, 12 Jul 2004 18:53:18 -0700 (PDT)
Received: from xorpc.icir.org (xorpc.icir.org [192.150.187.68])
	by wyvern.icir.org (8.12.9p1/8.12.8) with ESMTP id i6D1rIms051333
	for <xorp-cvs@icir.org>; Mon, 12 Jul 2004 18:53:18 -0700 (PDT)
	(envelope-from pavlin@icir.org)
Received: from xorpc.icir.org (localhost [127.0.0.1])
	by xorpc.icir.org (8.12.9p1/8.12.8) with ESMTP id i6D1rH8M092269
	for <xorp-cvs@icir.org>; Mon, 12 Jul 2004 18:53:17 -0700 (PDT)
	(envelope-from pavlin@xorpc.icir.org)
Received: (from pavlin@localhost)
	by xorpc.icir.org (8.12.9p1/8.12.3/Submit) id i6D1rHJt092268;
	Mon, 12 Jul 2004 18:53:17 -0700 (PDT)
	(envelope-from pavlin)
From: Pavlin Radoslavov <pavlin@icir.org>
Message-Id: <200407130153.i6D1rHJt092268@xorpc.icir.org>
Date:     Mon, 12 Jul 2004 18:53:17  ()
To: xorp-cvs@icir.org
Reply-To: pavlin@icir.org
Subject: [Xorp-cvs] XORP cvs commit: xorp/libxorp/ heap.cc
Sender: xorp-cvs-admin@icir.org
Errors-To: xorp-cvs-admin@icir.org
X-BeenThere: xorp-cvs@icir.org
X-Mailman-Version: 2.0
Precedence: bulk
List-Help: <mailto:xorp-cvs-request@icir.org?subject=help>
List-Post: <mailto:xorp-cvs@icir.org>
List-Subscribe: <http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-cvs>,
	<mailto:xorp-cvs-request@icir.org?subject=subscribe>
List-Id: Mailing list for XORP CVS commit messages <xorp-cvs.icir.org>
List-Unsubscribe: <http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-cvs>,
	<mailto:xorp-cvs-request@icir.org?subject=unsubscribe>

CVSROOT:	/usr/local/share/doc/apache/cvs
Module name:	xorp
Repository:	xorp/libxorp/
Changes by:	pavlin@xorpc.icir.org.	04/07/12 18:53:17

Modified files:
	xorp/libxorp/: heap.cc 

Log message:
	Bug fix:
	Fix the ordering of the heap entries when they have the
	same key value. Now if we push into the heap several entries with exactly
	same key value, when we pull them from the top of the heap, the pull order
	is the same as the push order (i.e., FIFO).
	
	Previously the order for entries with same key value was LIFO. However,
	this creates a problem if we schedule 2+ timers at the same time, and
	they have the same timeout value. If the program assumes that the timers
	will timeout in the order they were scheduled, the implementation
	invalidates this assumption.
	
	Typically, this problem is not revealed on FreeBSD and Linux, because
	two timers scheduled one-after-another with exactly same relative
	timeout value will have absolute timeout value spaced by several
	microseconds. However, this problem can show-up on systems that have
	coarse granularity of the system gettimeofday() equivalent.
	E.g., in vxworks/Motorola PowerPC860 clock_gettime() is incremented
	at 60Hz by default, i.e., 17ms.
	
	[Bug report, info and fix by "edrt" <edrt@citiz.net>]

_______________________________________________
Xorp-cvs mailing list
Xorp-cvs@icir.org
http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-cvs