Submitter | Jun Wu |
---|---|
Date | Feb. 9, 2017, 1:41 a.m. |
Message ID | <79adf3722f1b0f602e94.1486604464@x1c> |
Download | mbox | patch |
Permalink | /patch/18359/ |
State | Changes Requested |
Delegated to: | Yuya Nishihara |
Headers | show
Return-Path: <mercurial-devel-bounces@mercurial-scm.org> X-Original-To: patchwork@mercurial-scm.org Delivered-To: patchwork@mercurial-scm.org Received: from localhost (localhost [127.0.0.1]) by mercurial-scm.org (Postfix) with ESMTP id 366842C1B8; Wed, 8 Feb 2017 20:41:39 -0500 (EST) X-Virus-Scanned: Debian amavisd-new at mercurial-scm.org Received: from mercurial-scm.org ([127.0.0.1]) by localhost (mercurial-scm.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id EFiveX1WGgus; Wed, 8 Feb 2017 20:41:38 -0500 (EST) Received: from mercurial-scm.org (localhost [IPv6:::1]) by mercurial-scm.org (Postfix) with ESMTP id 882772C18A; Wed, 8 Feb 2017 20:41:36 -0500 (EST) X-Original-To: mercurial-devel@mercurial-scm.org Delivered-To: mercurial-devel@mercurial-scm.org Received: from localhost (localhost [127.0.0.1]) by mercurial-scm.org (Postfix) with ESMTP id 4A4892C18A for <mercurial-devel@mercurial-scm.org>; Wed, 8 Feb 2017 20:41:33 -0500 (EST) X-Virus-Scanned: Debian amavisd-new at mercurial-scm.org Received: from mercurial-scm.org ([127.0.0.1]) by localhost (mercurial-scm.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id PRMRJUccftew for <mercurial-devel@mercurial-scm.org>; Wed, 8 Feb 2017 20:41:33 -0500 (EST) Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by mercurial-scm.org (Postfix) with ESMTPS id 4BA262C1B4 for <mercurial-devel@mercurial-scm.org>; Wed, 8 Feb 2017 20:41:32 -0500 (EST) Received: from pps.filterd (m0109331.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v191bcIV024882 for <mercurial-devel@mercurial-scm.org>; Wed, 8 Feb 2017 17:41:31 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=content-type : mime-version : content-transfer-encoding : subject : message-id : in-reply-to : references : date : from : to; s=facebook; bh=E6INfk8AkI5kPDfJlSkqh6HGR4y2L4BYNzVld8t10jo=; b=ZO3klPBL3rzayvHE+k5wfIwRzxo6EUOTNWcaiIrqhATx2KGyhUza0OeN9IViIvIyVqMy YpAaB3nGo2VDJeQWI2u5WwOAzbeNFDQtydiBYnJ1UBY9wFhb5VNUSFtzp+gviU4/h9vY MZVTgVEh5Yc4pYCyoOTmK0AxnMrTZbnXyTM= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 28g9fv8v9c-14 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for <mercurial-devel@mercurial-scm.org>; Wed, 08 Feb 2017 17:41:31 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.13) with Microsoft SMTP Server (TLS) id 14.3.294.0; Wed, 8 Feb 2017 17:41:12 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=E6INfk8AkI5kPDfJlSkqh6HGR4y2L4BYNzVld8t10jo=; b=KovPMfFwLcg8zzLjTWgSZrQ4CCsTK8IZL6hCvTdIHZXWT+6fLSGQ9nLOQts2QySGQpfhabn57skFI7fsoZ8aXUx8Tp3TLAUj+i5DRdGF0sYcngynmiwM93boOM42QXia1hMzzc6oNM/Rb6fAWMEDY8/N7mFB2kVtPhDv7rIpjP4= Received: from [10.0.2.15] (199.201.64.130) by CY4PR15MB1509.namprd15.prod.outlook.com (10.172.161.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16; Thu, 9 Feb 2017 01:41:10 +0000 MIME-Version: 1.0 Subject: [PATCH 4 of 4 RFC] chgcache: add the background preloading thread X-Mercurial-Node: 79adf3722f1b0f602e9461f13fa940a25dbfce56 X-Mercurial-Series-Index: 4 X-Mercurial-Series-Total: 4 Message-ID: <79adf3722f1b0f602e94.1486604464@x1c> X-Mercurial-Series-Id: <138f7ba58a70de961071.1486604461@x1c> In-Reply-To: <138f7ba58a70de961071.1486604461@x1c> References: <138f7ba58a70de961071.1486604461@x1c> User-Agent: Mercurial-patchbomb/4.1-rc+11-7bfe02b57695 Date: Wed, 8 Feb 2017 17:41:04 -0800 From: Jun Wu <quark@fb.com> To: <mercurial-devel@mercurial-scm.org> X-Originating-IP: [199.201.64.130] X-ClientProxiedBy: MWHPR18CA0033.namprd18.prod.outlook.com (10.175.9.147) To CY4PR15MB1509.namprd15.prod.outlook.com (10.172.161.143) X-MS-Office365-Filtering-Correlation-Id: aa4fea99-7935-4b6c-95bc-08d4508cb9c5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY4PR15MB1509; X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 3:rh5+LN2qN6Jz+RIIkviehwC/O94gtFpoBnqY2a+CQGBm2iZLL8RkOX5ShG1BX/efdJCtJZwSHGpHgHFbbr7MHHFD1g3y4P2aOumbzSdO7Lid/MAd7MCkVmyxxP7dWZga4P1X54CGY/4KC7mE6dGXWcIV/ad7hKpXaV6eDbZwMWhK84y0Zd6ScgbwLkv2/U3Wpg5EWnRyYhHN9W6pnyGVRiXYkkDnem7ucZCa9/oBA1n4TGZwih2/3qwPGWElWstF20H1T16x3Uruas+sh3nwhQ==; 25:7tT2gLGp/WMFG2QpqCELiVXarcmqZNd3xA4I77DI3N9nKPxy12RMDxTFo9eW+YxIGhUFJYFZuGHQ+zFd0hrvU/zL/c/vkG/YWt4t4Fxg1onkWU59F56s9eB4xhKVAdq1ExMxf6yRDhvQgJl5cYD4qXMX9qmRMAtDU8Ur9qLD+Gg7ngrAWVXE6vSDCZXyYWNJOAGddMpk/pI/j7wJkOHHUiy8vDtlzkyr9kVWuUPaSxCTUD6uCuXYiNQAWLuTdICSgqYdcD42T4AjxZQLTxT/iyvhUCB4oXdSXcuateOyxINszpVo5yl4mX1XRJK2N0dzIu/a889zWScqf/Zz71RGblHf8Cej/Hzn+afpPE75oulM1X9ZIzCWaJCWol9xrpnED+oMY1d+PBRD+PTkYu2M6kIZgHhSgTiHGuM2brQJNmBNxK/ZSmZP8VRbATcXeSIR X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 31:qm4Zyj50+WCYXL8n0xKebYFjR4SgWHsyHzskv70VESS+EZom6LPpBAD8LUH5JtjlZD/LAL7QWzH1IB3YkSjA54Ricdg2LyeTBEp2k/sq/SzQdSuS5unN1LmXWIWTLe3oyXZGEeJa0EMJtpdvxq5/MMgj5jE4FkraErQwCCpZR+7gEn398pXmnD7JceBTvuo07m4+7fWxB2reYIBpFfFkQcjmRPGan4rRaQEeB0k1kxYQ1khPBN5UJF20bEmcdUA3szK2O0tW8CA2ZKq4QZAW9ulvXZ6eMppgiEyHs8996KyaBvLnUoyTPczR/Qd7k7Fs; 20:7OvWLgoD/s3UYanBDAHU5omPkJayrQsCKnrr4FNf2uiUHXIR/lMoreefnr8ysQHprtz5sSEZN34toKkuZfv3X4AyC9hPeSWu03QxCvcEyELdzfiNvTwmUieR0XcQnTuvBas2oquOsD88HzeWNmDmfFm9OevMIfhy/l6D5u06hnup8stc+DxviL+Wd/LR0DPN01/mIqJmcafQkzElal954O9Bt+u2v6io6IxpEq6Ky+ivgBWMajQGYfCkFg7GViDmk1AqOZENqu1AmeS0HcBRDzRtIl0nbpPlqQ+oA5Qy6z+SwFxIVEhsACxJ0iHq7vz8XPqlEPjB7HgzEjYN1GImtzaIoxYuo7Kut1yOrBAlhrQQs0g4KqUaIwTeAWPSI+CoorOYaAW5yf6fApNdKTZBgyZ05mmJLEMMO4MsyYic2Yb7kldLqfC7aXQHa3efatxtqAaqp/43yet82QI7657OHT1qp2B+L4JZlJ1xUUNt/pUL6mR7accN5KdBeutdtzIH X-Microsoft-Antispam-PRVS: <CY4PR15MB15091AE4958E4677A96EC3ADCD450@CY4PR15MB1509.namprd15.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(67672495146484)(63843785518722); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(2017020702029)(5005006)(20170203043)(8121501046)(3002001)(10201501046)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123558025)(20161123560025)(6072148); SRVR:CY4PR15MB1509; BCL:0; PCL:0; RULEID:; SRVR:CY4PR15MB1509; X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 4:Aaj6cG2outqlMX3QKyHPySNeR98W1L5JhCa3kd3RFu+0muYes0T2Tm+e8qy6d1m2nOBeqz1NBSansJ+4usID7dpmoEgkEpji51TgF61iBhFP1AukYrr1FsYVAl2FH3okMeUggfljfQdo4xhPOIx7gW7fDaf7gKscXLMC2b0dlnLn01PD0BnsYUvk8vAWu0NcsvSBz8+X29tJvcTDEpUfg1SV2ojeddYD1TxCtXm8aXrKtP11xUKeHaOsVa2eLPDwwdaVMkGUmH2RJ5E+LPa8XfZ0ctExmWrCYM5BMZzOURkbCH/1xjuyZ7I+Jw8sICQQJqof+R7KgeQGV9ZFCukyF3uYyoggYYnUrh19ELJjSHOm5DNRRf2GfRBBbEynmyBBIk5W8JLYQR1loznzY9NZssxGg2qDQn0i1zTtWy6/y0B9+tUgvCigyY7+TgNMGgZTdd4j8isJLuUPKAKJ5vR8Q9iugADquga/vkIuqUuSO2vvvPlaeF2iCdGEwbpTFRZHRVcfUQKvGdUa/aQF3qCCXZ/hpZkdpfh0F7S8CExd28CkoIuwmiMpjQiKvl312XpU6mOOz87BGsdTCfqg+RFROfj66gnRVYsW5XmxS+erTeePXCnzD0zyqEZYQQYTDjL/vbdIEM2p+NthMQ6bKekhqw2WtcHs07WHWH+lpFvEUgM7RMiqotmLMMjbzGXDv/A3or0iskgUcpmP/3AKDoeZU5vXVZRsHQQnR/RNSCTc+OnRQspgty+AbstMiZghMx// X-Forefront-PRVS: 02135EB356 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(39830400002)(39450400003)(39410400002)(189002)(199003)(105586002)(5660300001)(106356001)(2351001)(81156014)(81166006)(92566002)(77096006)(6486002)(8676002)(68736007)(6666003)(90366009)(2950100002)(6916009)(53936002)(97736004)(305945005)(83506001)(7736002)(2906002)(38730400002)(33646002)(110136004)(4001350100001)(66066001)(230700001)(9686003)(47776003)(50466002)(54356999)(76176999)(50986999)(6306002)(33716001)(86362001)(23726003)(46406003)(450100001)(25786008)(42186005)(189998001)(3846002)(101416001)(6116002)(97756001)(575784001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR15MB1509; H:[10.0.2.15]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: fb.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR15MB1509; 23:3W0k7RMUclQDEHGI9DTFl/5qm4+zxPlND+QsCMMLf?= =?us-ascii?Q?i8aBSsR2lW2u2+t70m/ws9kyvvePAIxxOrzKfQohBEwlJdBOXCFnomEMr84Z?= =?us-ascii?Q?I8k48XTzjLnxQfLqe/i0idWcNhAVVpzShilPiczLGIZpRWtCJTpqxnBoXddL?= =?us-ascii?Q?KRPgHPmpDlAAwgFtXuefm7zhgqaPl8aO40cqQbX9mSvMyxmhpCHD0f60ixAy?= =?us-ascii?Q?qLw+DATxNQQlRqWyyIjRIxaXyBXMJjbERsjy0/M7JuXDEyLeGzVn+9CqaYQb?= =?us-ascii?Q?qQQvxNAFQ9E63LjAKO5saGL2P9o7d2KotPNIsGHH5M7W4mbXDGHwLV6CcQlP?= =?us-ascii?Q?8vsfZk7PV5bZGR3AuCrjWoj1W2yNI365bJVbdWl/yvh4FWL+PLGCrM+37huu?= =?us-ascii?Q?dr7vsP3xjP16YVGn0y8bV2nnJHCdVqdWmsL1vPWRtt+mN5f5qJZ1gagCfA5/?= =?us-ascii?Q?7EAmAzPx67qt7MxKdqUqEXu4NdKcP0xfuVgl22BwC3nOs2d+vqHrP6YGclCC?= =?us-ascii?Q?zuAKDrCDbudCTttsVvSxW5rIFg+0nwtiw+aFY1kuDduAGPdJ87xh0GcaPEHT?= =?us-ascii?Q?YjbGYoChzyMrd1MZmVdVLx0HrfRQ+usprHfSxUY3vauhLSV23ekGdFXv9R68?= =?us-ascii?Q?G5yejem865G2bsIIzdW3y+xZKyM5l58UGs714UTBX33e7QIA02VNY0D99dcE?= =?us-ascii?Q?WlnbcAbb8YM/Ec1sCQfsLuV8ghsWivB3PllFmx5ZaSqcOgFBDsxrGTTg3k7i?= =?us-ascii?Q?iebgyQrliYBx6RBZ6IDViPxN++hzyyU6c2KpUxqpk/nMjoyS69E7frLNtDjO?= =?us-ascii?Q?GR+MMH+ErwhqWccYljZXafNuaKhh2G1Sv5b1kv+eNOZ16xOmHim+cKI75SNr?= =?us-ascii?Q?lHb2NIO0eFY4nEPKOHKEgrTB/nyttbZX33ttRmtQaWmeAL2PvuKYMavtuqfL?= =?us-ascii?Q?YUSzvf5AY8NmMyKhXXANP3iPEyS0mhu1XTMCdNZkR7EXBgYSN1dAFM79sBnF?= =?us-ascii?Q?68xMnFAzGf5p/vi8quKP8M7a2N1i76SBOhJZ70iYdKU31bt6nEJzAp/l/S8P?= =?us-ascii?Q?OxjQZVh6TDsFxkY4wvQhyFmqE04/ebfGoZPvm1XeMF6tdhq2TAdd1mgo36Qs?= =?us-ascii?Q?SZen6cN2TQzWfn8gui5bb/FMCK3YXor4m7rNMboE/goVHrjQldFlSw7Cq05r?= =?us-ascii?Q?aIZrTl0AXRqxPahSpHF4UF1HoPEyY5J1r3XdL6/uYvt+OnwqdPAY7oeF1kAi?= =?us-ascii?Q?SxPUhvfQPZWPsunmn935vwPVhE4EI0fbTzg7uh6fgi3oLIelHWzfA7QSx6CL?= =?us-ascii?Q?1z2GQ8NfbK9sqwHijbCbdU6KznNCEs3YhTCEj+fLObCpjU13ifIfLbO946AJ?= =?us-ascii?Q?6LH7w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 6:H9MWmMgLlc+5kQjOwSoRC9mOeAJrhWM8W7Q1Ve2M4QhYZa4UWPswm40eAw+NB14lOvJWPQPMt5jaQ8azEXEujh0YFAH4TEhUF9r/WRBBBFClUuruLLZAcHFblp9bjgRsQI9d8nbTG4axEdSV91ImmRbJPlYPT4bqYKCArbUd9R6kmP3wGRo00VhrW1PejKXNUMQQZ41ZzoiFmsCUHTBDegBPlmLa74mt+8Iw5mqyC0bh6ERHgrVB/4JqX0St/jhhHHnejqFOexcfL6mO/d6G41XuwS2piCidlezMWPqA0u76oon2fPCeVRRm010HVIJIG4V4ZmwpZPY4aaSRt9Q9YvMLoJIRxX8S08GXGRe3C9XrimA/NT5ih+s6LtowvqvdA+HCXJmUkNcJWW2Kp3DdOg==; 5:hXsICHr5Que1oga3UEpFDsQYQTB3d3Gg8DCXlqYsde8TfTlD+BHPwX6ZySdr+rksXCfcqfQdH+BMDBAOB5pZfcK3MZC9CrKsTeeZKXp2L3GRaOT+l3sLar1iLKd97SjHGVtr979f02iifpTsCJqpBw==; 24:IQA7YfOJ9WFS7pOf+RyZ2xVTpzNE4RVcwD7a1kQN+DSvNpuEii7z/OZZFNrhuYZ/7MN6h0mjCP0NUUK7ZCHHSHAa33/HrRD59n3l5MxjZUI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 7:Zi4B+OPmBYa7Qzvt3QXy9OOLic9+wsmjO4NlTqVUrhWog3IyL1uLXi7TORTM6SajD+9QLJ83IVc0wxK7cTiMJoV4weUS8lKP3YymQYrkzKSF1czYDpE1rz65kx6kZjKr10QKbAqzcj22p8SgIoe8FHsPg5YDliLkiw0xn0nT3NMZ/RMkg8HVNERGxIY7oEB+Uh3I2e786UYyHkICoE66PUOvhQ3PTpcttuuje4Czck2IbrByI43bfcllIF36yBgrE0jIiYEZCVlyh2vwmLdwKvKuesQU+BXYZfykSUuIN165PyPMBMVoenCXkmp5xAYGu2fsgI0Wi1/MHW3m6xvDESol2jbaT50o+IZuE8x3TqHqe3RjBFNhC5g5PJmL8Hcs3Z7kNS8vhQ0kVBAnykXrHlTaPqrmnPCwKKJlbCZ5hoPA5GWof0jJO5GdjbFRIfRYc2EhgwFcmN52S0g9yyZ3Mg3hIcrgOLB0JPa1gl4E6pR3B1mFjY1IUKmOiIIjJEGjNAce54bFxOaw9cX1xuc2HQ==; 20:Q/8Vq0qZ3SADg5wJeOL70cV7ozfn4Tad+ierup9D6kpytCfd76envA4T7HrlJoNqx9viCJZYCi8Y0xmYLwRzrsHITLajh0kJM4R/LXL/VTYqkIo8P3qZCAu78kT83NnthN6ShdnM/iVooSQgv95/hJ/ArbHhGPieeF4DlR2Pl7I= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2017 01:41:10.6238 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1509 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-02-08_14:, , signatures=0 X-BeenThere: mercurial-devel@mercurial-scm.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <mercurial-devel.mercurial-scm.org> List-Unsubscribe: <https://www.mercurial-scm.org/mailman/options/mercurial-devel>, <mailto:mercurial-devel-request@mercurial-scm.org?subject=unsubscribe> List-Archive: <http://www.mercurial-scm.org/pipermail/mercurial-devel/> List-Post: <mailto:mercurial-devel@mercurial-scm.org> List-Help: <mailto:mercurial-devel-request@mercurial-scm.org?subject=help> List-Subscribe: <https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel>, <mailto:mercurial-devel-request@mercurial-scm.org?subject=subscribe> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: mercurial-devel-bounces@mercurial-scm.org Sender: "Mercurial-devel" <mercurial-devel-bounces@mercurial-scm.org> |
Comments
Jun Wu - Feb. 9, 2017, 1:41 a.m.
Patch
diff --git a/hgext/chgcache.py b/hgext/chgcache.py --- a/hgext/chgcache.py +++ b/hgext/chgcache.py @@ -14,4 +14,5 @@ from __future__ import absolute_import import socket import sys +import threading import time @@ -77,4 +78,5 @@ class socketipc(object): _ipc = socketipc() +_repocaches = {} # {repopath: (mtime, cache)} # -- only used by the forked worker process ----------------------------------- @@ -94,4 +96,19 @@ def _runcommand(orig, self): return result +# -- only used by the master process ------------------------------------------ + +def _backgroundpreloader(interval=0.5): + while True: + try: + atime, path = _ipc.recv().split(' ', 1) + except Exception: # format error + pass + else: + if path in _repocaches and _repocaches[path][0] >= atime: + # the repo cache is up-to-date + continue + now = time.time() + _repocaches[path] = (now, None) + # ----------------------------------------------------------------------------- @@ -109,2 +126,8 @@ def extsetup(ui): caps = chgserver.chgcmdserver.capabilities caps['runcommand'] = extensions.bind(_runcommand, caps['runcommand']) + + # start the background preloader + t = threading.Thread(target=_backgroundpreloader, + name='chgcache-backgroundpreloader') + t.daemon = True + t.start()