Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp2193986rdb; Tue, 3 Oct 2023 13:13:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFg9citN1NXPTbPBqhErqT8aduZqny3UAZuzA1yNBPA4j/xI/MYFWgXSM0zejFfCqflTbCT X-Received: by 2002:a17:90a:e64f:b0:26d:49a0:2071 with SMTP id ep15-20020a17090ae64f00b0026d49a02071mr444638pjb.13.1696364020184; Tue, 03 Oct 2023 13:13:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696364020; cv=none; d=google.com; s=arc-20160816; b=uLs6QB4tqLhzYKUuwOSAcSVJODi9Ew2YItlty5CKs80bCkEhVMnoeOjzFGTpUn9vb3 24dJU245BYo2nTuzKCWz7YHV45j5S0FWfR2nHjKTvXFjSIsAkg84c6HWSQi/OYQzcy6T MtqmaJ5/F+nxgMK1g5O1+zbryKXIaaTcfgWwZ9dnqedH/TrJkCTqQb/QhwjY8A/qO2nk pSi7WxJXzd0R1R67q7GnuP9hTvOAH2MVTEITCv0Czx3KIG7N8c/qC4MjInHc05Ri5J5C R8WxOMGdaRx3srm0e3oAgkmX8+d/bA5Xa/rQA7oQvXYD0ToGjLR5+iS1/GvZeOSXfDuo DtFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:message-id:from:to:cc:subject:date :content-transfer-encoding:mime-version:feedback-id:dkim-signature :dkim-signature; bh=WsB9L9DWS7tkowlV7TtWLRR1ydB8yDugfdaCwbWVulY=; fh=XeAlxlklzFt88mnxZ6bgQ9EelkB7xR9Y0AJk7fxa++c=; b=n6Kju+/KXTVISQjfLTN8CPbQclXBLINlLMpCDtWF4oUpug9BH0h1zvv78fscb5A5Jh sKNg9A5he4C4Aooo3ty3No3Og3GEOWYUoMF2bRrbS4ZOMjadFtYbpKyQfpHxUBEHmOQI pQWow5lGW2Mz/LJsA/+68vFSB1iQUqIGAm5hRdNytrXFv8p084TYlX4nYq6k820V5ano rj4xLwIr2RPvyJhS3deCicwdE3ekxlmD8bwUXmjiMxR4jbmWBKX6vDsLyhd0cwqy5AV7 I7z45rwaFnz4/rHAcQe4dTGPHWC1l+lBlX449QKDxbCKDRMq0QKoV11NoajXaYZtbW4R y+9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ftml.net header.s=fm2 header.b=bNKxAHlR; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=DGYb53HF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ftml.net Return-Path: Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id c12-20020a17090ab28c00b0026b043c8bbesi2042698pjr.136.2023.10.03.13.13.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Oct 2023 13:13:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@ftml.net header.s=fm2 header.b=bNKxAHlR; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=DGYb53HF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ftml.net Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 9999882DC603; Tue, 3 Oct 2023 13:13:38 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241052AbjJCUNf (ORCPT + 99 others); Tue, 3 Oct 2023 16:13:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39726 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241050AbjJCUNe (ORCPT ); Tue, 3 Oct 2023 16:13:34 -0400 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1C1C6A7; Tue, 3 Oct 2023 13:13:31 -0700 (PDT) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id C68EE5C02DC; Tue, 3 Oct 2023 16:13:28 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Tue, 03 Oct 2023 16:13:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ftml.net; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :reply-to:sender:subject:subject:to:to; s=fm2; t=1696364008; x= 1696450408; bh=WsB9L9DWS7tkowlV7TtWLRR1ydB8yDugfdaCwbWVulY=; b=b NKxAHlRC1f33oSkY8zGi9xwdwB+NVVDrI/qhLKFlPkCuWSzKs+MFpT/eGHHDFb7O VHwyCCTykZzB2aVgb745gL7MxNDI/U0ko4MLXYcVFwpHI6nmRNlunkPUGU2TkVLo 0NxL/BEFzjJyUbBf2u4ComavzV7p7Gs/02e/Qc65b6L8CetXdUTKxeTuKBFoslzf 8D7F52dv5RrctHeNMqA1a7UJDzD0gJoh7qQP99Qntnc1Cqty99SA60y6SuUp1/Rk 0sc39Vx7J871TqC1wZrMNW1In9+k+GYlxgZKRIRtjx5XRaGM/Y/4GjwIHeG8ok42 NiWtfnzEOqyNCyZ3IZ1qQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1696364008; x= 1696450408; bh=WsB9L9DWS7tkowlV7TtWLRR1ydB8yDugfdaCwbWVulY=; b=D GYb53HFuqWlBADhwaIRw5AgrR9HOXZCBRa/A0cybXWMIW1847XixBMRK+A72DVWg f5KDXmB7StSewnXwTCpHeLI9WpeXjz/PEP4DlQs0BXcEueYpVum+o6zK2RW8pKIh JLoMQ09tAgacggV/uNNZWJH57bTBvVcPeJw9Y2y1piJgrYILF7KNoJX+6t4qPLLY qSCkBqhDjcmkAiAXWqBEsSQLKNWNtC/vO7kl5ywlDmNVFhI+jX7LRCRlHZCikaJe tuIN2Z+tARu4Z6XawkJfkh6xClB9xiypQsp2CqOSYvOj5mN/qrmymNdPsY/g6KUB xrwA+ciGEwilDNJHLcQKw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrfeejgdehiecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepggfgtgffufevvffhkffojgesthhqre dtredtjeenucfhrhhomhepfdfmohhnshhtrghnthhinhcuufhhvghlvghkhhhinhdfuceo khdrshhhvghlvghkhhhinhesfhhtmhhlrdhnvghtqeenucggtffrrghtthgvrhhnpeejff ekjedujeekteetveeiveegvdfhieevudegtdeileduudekleetfeelveehudenucevlhhu shhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehkrdhshhgvlhgvkh hhihhnsehfthhmlhdrnhgvth X-ME-Proxy: Feedback-ID: ib7794740:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 3 Oct 2023 16:13:26 -0400 (EDT) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Tue, 03 Oct 2023 23:13:25 +0300 Subject: Re: [PATCH v4 7/7] rust: workqueue: add examples Cc: , , , , , , , , , , , , , To: From: "Konstantin Shelekhin" Message-Id: X-Mailer: aerc 0.15.2.r131.ga5d6a70 In-Reply-To: <20230828104807.1581592-8-aliceryhl@google.com> X-Spam-Status: No, score=-0.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,PDS_OTHER_BAD_TLD, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 03 Oct 2023 13:13:38 -0700 (PDT) +//! #[pin_data] +//! struct MyStruct { +//! value: i32, +//! #[pin] +//! work: Work, +//! } +//! +//! impl_has_work! { +//! impl HasWork for MyStruct { self.work } +//! } +//! +//! impl MyStruct { +//! fn new(value: i32) -> Result> { +//! Arc::pin_init(pin_init!(MyStruct { +//! value, +//! work <- new_work!("MyStruct::work"), +//! })) +//! } +//! } +//! +//! impl WorkItem for MyStruct { +//! type Pointer =3D Arc; +//! +//! fn run(this: Arc) { +//! pr_info!("The value is: {}", this.value); +//! } +//! } +//! +//! /// This method will enqueue the struct for execution on the system wo= rkqueue, where its value +//! /// will be printed. +//! fn print_later(val: Arc) { +//! let _ =3D workqueue::system().enqueue(val); +//! } I understand that this is highly opionated, but is it possible to make the initialization less verbose? Because the C version looks much, much cleaner and easier to grasp: struct my_struct { i32 value; struct work_struct work; }; void log_value(struct work_struct *work) { struct my_struct *s =3D container_of(work, struct my_struct, work); pr_info("The value is: %d\n", s->value); } void print_later(struct my_struct &s) { INIT_WORK(&s->work, log_value); schedule_work(&s->work); }