Return-Path: X-Original-To: apmail-trafficserver-dev-archive@www.apache.org Delivered-To: apmail-trafficserver-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E93311057B for ; Wed, 4 Dec 2013 15:38:31 +0000 (UTC) Received: (qmail 31873 invoked by uid 500); 4 Dec 2013 15:38:30 -0000 Delivered-To: apmail-trafficserver-dev-archive@trafficserver.apache.org Received: (qmail 31684 invoked by uid 500); 4 Dec 2013 15:38:25 -0000 Mailing-List: contact dev-help@trafficserver.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@trafficserver.apache.org Delivered-To: mailing list dev@trafficserver.apache.org Received: (qmail 31650 invoked by uid 99); 4 Dec 2013 15:38:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Dec 2013 15:38:23 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy includes SPF record at spf.trusted-forwarder.org) Received: from [71.6.165.248] (HELO kramer.ogre.com) (71.6.165.248) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Dec 2013 15:38:16 +0000 Received: from [192.168.201.3] (host-64-17-89-29.beyondbb.com [64.17.89.29]) (authenticated bits=0) by kramer.ogre.com (8.14.5/8.14.5) with ESMTP id rB4FbqhA030635 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Wed, 4 Dec 2013 07:37:53 -0800 Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 7.0 \(1822\)) Subject: Re: git commit: TS-2415: use standard continuations to release UrlRewrite objects From: Leif Hedstrom In-Reply-To: Date: Wed, 4 Dec 2013 08:37:51 -0700 Cc: commits@trafficserver.apache.org Content-Transfer-Encoding: quoted-printable Message-Id: References: To: dev X-Mailer: Apple Mail (2.1822) X-Virus-Checked: Checked by ClamAV on apache.org On Dec 3, 2013, at 10:30 PM, jpeach@apache.org wrote: > Updated Branches: > refs/heads/master 2b6a5f6bb -> 0f9305dc6 >=20 >=20 > TS-2415: use standard continuations to release UrlRewrite objects >=20 > UrlRewrite uses a custom continuation to release the old object > after it is no longer needed. We can use library code for this > instead. Use new_Deleter to free the old UrlRewrite object. > newTable =3D NEW(new UrlRewrite()); > if (newTable->is_valid()) { > - eventProcessor.schedule_in(new = UR_FreerContinuation(rewrite_table), URL_REWRITE_TIMEOUT, ET_TASK); > + new_Deleter(rewrite_table, URL_REWRITE_TIMEOUT); > Debug("url_rewrite", "remap.config done reloading!"); > ink_atomic_swap(&rewrite_table, newTable); > } else { >=20 Fwiw, this new_Deleter does not have the same semantics as the old code. = The old code would schedule the deletion on the ET_TASK thread pool, = whereas new_Deleter runs on any of the net-threads. This could mean that = we=92d block a net-thread for some time if the remap table is = sufficiently large. I don=92t know if it is a real, detrimental problem, but if I recall we = moved the remap.config reloading / management to ET_TASK because it did = have a real problem when loading very large configs. Maybe the right thing is to make new_Deleter use ET_TASK? If there are = no task threads configured, that falls back to the old behavior? =97 Leif