Re: dbus Digest, Vol 157, Issue 8, DBUS - how to handle muliple bus-message in parallel

dtdang <[email protected]>
Newsgroups gmane.comp.freedesktop.dbus
Message-ID <CAJpUOafDJw01tMei51k3+BFzAcm_8u8y0MgfPvr-e+WZVaHMRw@mail.gmail.com>
Hi Lawrence & Simon,

Thanks for your advice.
For now, I am using direct API from libdbus and tried to handle upcoming
messages at the same time. FYI, client will use dbus-send to send messages.
Then dbus-daemon will transfer messages to server. In the worst scenario,
client will send two messages in 10 seconds and those messages make impact
on each other. That's why I am stuck in how to handle 2nd message why 1st
message is still being processing. I did create a task purposing for
receiving messages and parsing to handler. But  I still don't know is there
any API/function in libdbus to trigger handler when message is in queue ?

Thanks,

On Tue, Aug 21, 2018 at 9:00 PM, <[email protected]> wrote:

> Send dbus mailing list submissions to
>         [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://lists.freedesktop.org/mailman/listinfo/dbus
> or, via email, send a message with subject or body 'help' to
>         [email protected]
>
> You can reach the person managing the list at
>         [email protected]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of dbus digest..."
>
>
> Today's Topics:
>
>    1. Not able to access system device from session service
>       (deepan muthusamy)
>    2. Re: Not able to access system device from session service
>       (Simon McVittie)
>    3. Re: DBUS - how to handle muliple bus-message in parallel
>       (Lawrence D'Oliveiro)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 20 Aug 2018 19:22:09 +0530
> From: deepan muthusamy <[email protected]>
> To: Systemd <[email protected]>,
>         [email protected]
> Subject: Not able to access system device from session service
> Message-ID:
>         <CAPNtGhXia_SSw1FRLuh2DFC=DgJg8i2JUw1D49cS=2jYenR5Lg@
> mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> I started one application as system service in /etc/systemd/system by
> giving command "systemctl  start mysystem.service".
> I have one more application which i have to start as session service in
> etc/systemd/user by giving command "systemctl --user start
> mysession.service".
>
> My session.service  has dependency on mysystem.service, so I mentioned in
> Requires and After command in session.service.
>
> But when iam trying to session.service it is showing "mysystem.service" not
> found. Can anyone help me with this?
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <https://lists.freedesktop.org/archives/dbus/attachments/
> 20180820/41e5b22f/attachment-0001.html>
>
> ------------------------------
>
> Message: 2
> Date: Mon, 20 Aug 2018 18:40:39 +0100
> From: Simon McVittie <smcv-ZGY8ohtN/[email protected]>
> To: [email protected]
> Subject: Re: Not able to access system device from session service
> Message-ID: <20180820174039.GA23379-KlMPWNVy2xGznp5rFuqWZquhQ75O6kbf0Fzj8UutsXo@public.gmane.org>
> Content-Type: text/plain; charset=iso-8859-1
>
> On Mon, 20 Aug 2018 at 19:22:09 +0530, deepan muthusamy wrote:
> > My session.service  has dependency on mysystem.service, so I mentioned in
> > Requires and After command in session.service.
>
> This is really a fact about systemd, not about D-Bus, but you can't do
> that. The Requires, After etc. fields in systemd system services refer to
> other system services. The Requires, After etc. fields in user services
> refer to other user services. There is no way to make a user service
> depend on a system service.
>
> However, you probably don't need to do that anyway. If you set up
> your system service to be "activatable", then it can be started by
> dbus-daemon on-demand the first time it receives a message from one of
> its clients (in your case that's your user/session service). ModemManager
> (org.freedesktop.ModemManager1) is a good example of an activatable
> system service that works like this.
>
> Here's how that looks:
>
> /usr/share/dbus-1/system-services/com.example.YourService.service:
>
>     [D-BUS Service]
>     Name=com.example.YourService
>     Exec=...
>     User=...
>     SystemdService=dbus-com.example.YourService.service
>
> /lib/systemd/system/your-service.service:
>
>     [Unit]
>     ...
>
>     [Service]
>     ...
>
>     [Install]
>     WantedBy=...
>     Alias=dbus-com.example.YourService.service
>
> Replace "..." with whatever is most appropriate for your service,
> replace com.example.YourService (in both filenames and content) with
> your service's well-known D-Bus bus name (use a domain name that you or
> your company owns), and replace the filename your-service.service with
> whatever short name is most appropriate for your service.
>
> In the systemd service, you'll probably want to use Type=dbus and
> BusName=com.example.YourService. That means systemd will only think your
> service is ready for use when it has requested and obtained its well-known
> bus name com.example.YourService.
>
> The systemd [Service] ExecStart should probably be very similar to the
> D-Bus Exec.
>
> Similarly, the User should probably be the same for both. In the systemd
> service file the default is root, but in the D-Bus service file there
> is no default and you must always specify a User (even if it's root,
> as it is for ModemManager).
>
>     smcv
>
>
> ------------------------------
>
> Message: 3
> Date: Tue, 21 Aug 2018 10:08:34 +1200
> From: Lawrence D'Oliveiro <ldo-kC51rjc0cqs1dNLGKZg6taU/[email protected]>
> To: [email protected]
> Subject: Re: DBUS - how to handle muliple bus-message in parallel
> Message-ID: <20180821100834.19927de3-QEjm8wl6P5m5/[email protected]>
> Content-Type: text/plain; charset=US-ASCII
>
> On Mon, 20 Aug 2018 20:10:49 +0900, dtdang wrote:
>
> > Currently, I am trying to create a server API to
> > handle multiple dbus-message in parallel.
>
> When you receive a message, it is up to you to construct and return the
> reply at some point with
> dbus_message_new/dbus_message_new_method_return. To avoid holding up
> the dispatching of subsequent messages in the meantime, you need to do
> your actual message processing on a separate thread.
>
> However, for the sake of your own sanity (and that of libdbus as well),
> it is probably best to ensure that all libdbus calls happen on a single
> thread.
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> dbus mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dbus
>
>
> ------------------------------
>
> End of dbus Digest, Vol 157, Issue 8
> ************************************
>

_______________________________________________
dbus mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dbus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.