From patchwork Tue Jun 30 10:38:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karl Palsson X-Patchwork-Id: 1319742 X-Patchwork-Delegate: ynezz@true.cz Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=etactica.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=wm/RDxVX; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=eTactica.onmicrosoft.com header.i=@eTactica.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-eTactica-onmicrosoft-com header.b=R6UTv0gI; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49x1CS0hQGz9sRN for ; Tue, 30 Jun 2020 20:42:43 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=q4GqKBJdh12wl6v03YUH8JP0DCsqHYMLDFaquLCQje4=; b=wm/RDxVXnuJBtf7ZPufTAee58 3RZpWwki3y3pCrj1BDC8/1Nu4e9csxpIRlCf3olmlVPhPlY5qiAVmO3D6+sZhBWbmdl/Bja26/y3u tze08Edypukkpby3WnCahdtT+PQLvEZy+3CHURajQbrNXepE2JIBiy3kH2WJc9DoA7Wr9nvy4tDBS wJzklSTrQxNL23tPbKEL6BMFz196HaZlxVAT/TwDyl+AHR/r5m9MgWXXmU/HyOHaYkJKIMCxghq88 Khh6i64RxMIsCsfF9kXpCJw2WZ4GyO1FzdOdH6+GhYpAQ1i2JwDUOmJhuMiHGu3kxYh1q9g722y2T u0KAokUpw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jqDff-0007gM-0l; Tue, 30 Jun 2020 10:39:23 +0000 Received: from mail-am6eur05on2103.outbound.protection.outlook.com ([40.107.22.103] helo=EUR05-AM6-obe.outbound.protection.outlook.com) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jqDfZ-0007eL-DV for openwrt-devel@lists.openwrt.org; Tue, 30 Jun 2020 10:39:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XAyIB60TjCRefwhdF5aTcRk4X53VGzB2SNikIhto005/V8Y+LhzixWG3ca5ElCE892/x2dw2fpQ7J7nFmnv0JgZEGhtNkCVvNiTxj4uYK/q0sr52vxzQf5i+gERo05eLoc6x0qpetJUsmi+ZilrbhL24ij+tox7r6gJMztSp/++8Vtzpvp1Sy28R1Q4jgF3K6TLW1Pdx0isne+SkgQ0cQEWjm/A0Vi/RaYqhgodfb633sfV1MCDBcWob0PjNWiBgR3ev1Pi+ktmMmG9hnnC9cxI54yHHjIIgLVHKzAOjErBPqHX8PMhVgrs6H2bM8bih/qzJFJZMzmCvLfIcAcujtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=peKjc/J+ZRdMw+X8t5ycawTIRW2r9lty2t5weTSIE8w=; b=khxuP9r8zQEQ3Y3oxy19xUdDkrgmOel9wnRrT9t0ga1S6RpT85I+dW53jngQLyzrrg2+JcmZLvQybL/BPOsQraZP2tQrGoE4h+TdHeG3Yey/rESGLFlvm6fM3A25ieiJQYoHWG6F0AYiQCLdpz/fz/RwjoGTcrww18ciG1JfVGk7qklyBCeqT4XUl4S0TmUApjowXJAPoH1OjzQc/lTeej6630owtmxvQK9oIhNdtOFH0AZtYCTsM3IQSJXAbERgeSIGkgg22GamtfrGz4n4GG2E+pX7NUaQOvH6caWBoK0yXntOuRfZQN3Ih4xNIRhQLOKv0ZVtO1TRa9s1nvjiJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=etactica.com; dmarc=pass action=none header.from=etactica.com; dkim=pass header.d=etactica.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eTactica.onmicrosoft.com; s=selector2-eTactica-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=peKjc/J+ZRdMw+X8t5ycawTIRW2r9lty2t5weTSIE8w=; b=R6UTv0gINiGJBRskblBJroGfEcO+b+hLE9qLosf8JOFZnAasrfIJwAmmh3j/6TgYbLwhrpA12Ew+eJTdEYjm6h8S5Mrm/j+r70kYm5X1gnp8Zg+veqXGq6TClhKwDrMlnX+PN1WhTLnVuMFu70kiR6igGRR7X5/DNZn51m+wSRA= Authentication-Results: lists.openwrt.org; dkim=none (message not signed) header.d=none;lists.openwrt.org; dmarc=none action=none header.from=etactica.com; Received: from VI1PR07MB4462.eurprd07.prod.outlook.com (20.177.54.81) by VI1PR07MB6367.eurprd07.prod.outlook.com (10.186.162.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.15; Tue, 30 Jun 2020 10:39:15 +0000 Received: from VI1PR07MB4462.eurprd07.prod.outlook.com ([fe80::a9c1:52f2:43a2:f058]) by VI1PR07MB4462.eurprd07.prod.outlook.com ([fe80::a9c1:52f2:43a2:f058%3]) with mapi id 15.20.3153.018; Tue, 30 Jun 2020 10:39:15 +0000 From: Karl Palsson To: openwrt-devel@lists.openwrt.org Subject: [PATCH libubox 4/4] examples/lua: attempt to highlight some traps Date: Tue, 30 Jun 2020 10:38:44 +0000 Message-Id: <20200630103844.16633-5-karlp@etactica.com> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200630103844.16633-1-karlp@etactica.com> References: <20200630103844.16633-1-karlp@etactica.com> X-ClientProxiedBy: LNXP265CA0080.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:76::20) To VI1PR07MB4462.eurprd07.prod.outlook.com (2603:10a6:803:69::17) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from strem.lan (213.181.112.179) by LNXP265CA0080.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:76::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.27 via Frontend Transport; Tue, 30 Jun 2020 10:39:14 +0000 X-Mailer: git-send-email 2.21.3 X-Originating-IP: [213.181.112.179] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 489d7cba-ff3e-4785-8005-08d81ce1d574 X-MS-TrafficTypeDiagnostic: VI1PR07MB6367: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:203; X-Forefront-PRVS: 0450A714CB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9xPFByNuS/X+I0gBjQrrj7XUTGHbGTzS/Xx9RpkOuqgJ7A2woY9maeMXQwFR82KTwwtHcVQZIRt9n2ZU09OvLD5EjaSc51bnkPzsn1x/oertempVpP+cKHeLU53SsPIsRn/InGX3RKJkCJy5Xot9Z00Uz+d+m8XzA2gtm+AeA6m8xzY3Bi498sY2GKwXT5XO63b+xdOEqI14YZO2daFknTEYvUv3pnZJ1FDvFBca3AAmzJMrwYiQapBS+g53oqIoBzIqIPiV209mcwe+CaZutuUFO8L/UaxJOdSlNaB0Pwe0BSmI1uIehJbjNF52gTDSmatCM4eg+6uQk2f/NXB76A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR07MB4462.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(376002)(396003)(39830400003)(346002)(366004)(136003)(1076003)(52116002)(6512007)(66476007)(316002)(66946007)(66556008)(6666004)(2906002)(86362001)(36756003)(5660300002)(8886007)(508600001)(6506007)(2616005)(956004)(83380400001)(8676002)(26005)(8936002)(4326008)(186003)(6486002)(16526019)(107886003)(6916009); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: 7aXJrZUlvy8fddqQt3XINVQ1qi44n4FQ0wPFp9rRcqwa1hPh6NguFkj2S30wsJUf8FKiKPNHnN+CfgcD4fhb6z+5ouejqnVlDD+D5zti8tFtsq33WAHbhPar4byTLEWPDMCZlaCV1SqxVq2avJJiWTkKQow5lNvHCRc1jrGSJni04cdgVHjwSN/lz438L11Hu8I15+uNRqaEX+ISxmyN2yskLMTaRp7BCvZY4fQg+PnID9O/aH9aGR6RAaqM0Hg131WFPTl2i/XCRrzEOBMzLVHRb4Uwi/iXr4PhQytOw3TQXy3QHWwIQSrQgkSSKi99nQghHYbL0BbbxrQeTTIG//UzDV/5QtyZTYqleaPsPnAu/e+6jnoRL02TQMTCp6b2Ou51qHvS6Z0UlUre/spFMMkXe8FsnnQMFsuYmoUSxdh6C4PcfZ0IuEZxbNs1sv2cCApt2kgDXBss3DcFmattwcrxLBpoCCZ3dUrJMmbfuwU= X-OriginatorOrg: etactica.com X-MS-Exchange-CrossTenant-Network-Message-Id: 489d7cba-ff3e-4785-8005-08d81ce1d574 X-MS-Exchange-CrossTenant-AuthSource: VI1PR07MB4462.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2020 10:39:14.9215 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e3621586-558f-4e21-92a9-26df2c484dae X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: k0X7iUG9vEWEkm6Iu6tFT+HoTV+QTRPMCQvu8CQZv6XKxWJ7wi6+XvTSFwq4goulgOjGw7wwwuoUJhGoGLjraw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB6367 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -0.7 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [40.107.22.103 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [40.107.22.103 listed in wl.mailspike.net] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Karl Palsson Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Ran into some issues with my fd event being garbage collected. As I never wanted to call :delete, I had seen no reason to keep the returned object, as my callback and upvalues were still valid. Signed-off-by: Karl Palsson --- examples/uloop-example.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/uloop-example.lua b/examples/uloop-example.lua index 9b0684e..511b9ea 100755 --- a/examples/uloop-example.lua +++ b/examples/uloop-example.lua @@ -9,7 +9,7 @@ local udp = socket.udp() udp:settimeout(0) udp:setsockname('*', 8080) --- timer example 1 +-- timer example 1 (will run repeatedly) local timer function t() print("1000 ms timer run"); @@ -18,10 +18,10 @@ end timer = uloop.timer(t) timer:set(1000) --- timer example 2 +-- timer example 2 (will run once) uloop.timer(function() print("2000 ms timer run"); end, 2000) --- timer example 3 +-- timer example 3 (will never run) uloop.timer(function() print("3000 ms timer run"); end, 3000):cancel() -- process @@ -46,6 +46,8 @@ uloop.timer( end, 2000 ) +-- Keep udp_ev reference, events will be gc'd, even if the callback is still referenced +-- .delete will manually untrack. udp_ev = uloop.fd_add(udp, function(ufd, events) local words, msg_or_ip, port_or_nil = ufd:receivefrom() print('Recv UDP packet from '..msg_or_ip..':'..port_or_nil..' : '..words)