Hello Rob,

You might want to take a little look at LGI code for this. They have
multiple trick to make this work. You can also use it for some async
operation like "run when idle"

glib.idle_add(glib.PRIORITY_DEFAULT_IDLE, function() print("foo") end)

or async I/O information transfer:

but overall I like your idea, it would be a nice addition to the yet
to be officially proposed gears.async module.

Have a good day

On 1 October 2014 08:40, Rob Hoelz <rob.ho...@skinnycorp.com> wrote:
> Hello Awesome developers,
> I've encountered an interesting behavior in Awesome while playing with
> coroutines and timers (in an effort to develop a framework where one
> can write synchronous-looking code that runs in an asynchronous
> fashion).  In short, I am able to make Awesome segfault when using
> certain Awesome API functions from within a coroutine.
> Here's some example code:
> local sd     = require 'sleep-dealer'
> local notify = require('naughty').notify
> sd.tuck_in(function()
>   for i = 1, 5 do
>     sd.sleep(1)
>     notify {
>       title = 'Alert!',
>       text  = tostring(i),
>     }
>   end
> end)
> The source for sleep-dealer.lua can be found here:
> https://github.com/hoelzro/awesome-config/blob/8bb989a10ee52bfb0d42efcc486b2136585b0126/sleep-dealer.lua
> When naughty.notify is called, a segfault occurs.  I've determined that
> this is because globalconf.L is used in a lot of Lua API calls.
> Sometimes the Lua state passed into a function is really the state
> corresponding to a coroutine, so the states don't match and Lua panics.
> I bring this up here on the mailing list rather than fixing it myself
> or filing a bug because I wanted to take the pulse of the developer
> community on whether this is a true bug or if this is doing something
> with Awesome that it wasn't intended for.  If it's the latter, I can
> let the matter rest; if it's the former, I would be happy to contribute
> a patch that fixes the problem.
> -Rob
> --
> To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.

To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.

Reply via email to