<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jan 13, 2014 at 12:57 AM, Aleksander Morgado <span dir="ltr"><<a href="mailto:aleksander@aleksander.es" target="_blank">aleksander@aleksander.es</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 13/01/14 03:48, Ben Chan wrote:<br>
>> One option would be to have all the MMQueueData items be completed in an<br>
>> > idle, so that when they are really completed the port was already marked<br>
>> > as forced_close. I know it's probably too much just to handle this case,<br>
>> > but I also think it's important to warn about the incorrect open/close<br>
>> > counts; and the idle completion is actually a good idea as we avoid<br>
>> > chaining up normal close()s within the forced_close() call.<br>
>> ><br>
>> > I'd suggest to wait until we release 1.2, because after that I'd like to<br>
>> > merge the 'aleksander/ports-refactor' branch, and in that branch the<br>
>> > change needed to have the MMQueueData item (named CommandContext in the<br>
>> > branch) completed in idle is just a rename of<br>
>> > g_simple_async_result_complete() to<br>
>> > g_simple_async_result_complete_in_idle().<br>
>> ><br>
> complete_in_idle would work but that requires all contexts to be aware<br>
> of the semantics. Is the CommandContext going to replace all contexts<br>
> (i.e. one rename is enough)?<br>
<br>
</div></div>It should be just one rename, yes. CommandContext (GSimpleAsyncResult<br>
based) will replace the MMQueueData struct internally, and as long as<br>
the GSimpleAsyncResult contains everything needed to propagate either<br>
the error or result string to upper layers, there shouldn't be any major<br>
other issue to handle.<br>
<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div>I submitted a patch to make sure that the result is completed in idle as we discussed before.</div><div><br></div></div></div>

</div>