<div dir="ltr">On Fri, Apr 5, 2013 at 4:09 AM, Kristján Valur Jónsson <span dir="ltr"><<a href="mailto:kristjan@ccpgames.com" target="_blank">kristjan@ccpgames.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">





<div lang="EN-GB" link="blue" vlink="purple">
<div>
<p class=""><span style="color:rgb(31,73,125)">I’ve been thinking some more about this.
<u></u><u></u></span></p>
<p class=""><span style="color:rgb(31,73,125)">It should be ok to kill a tasklet that hasn’t run yet.  And killing a dead one should be a no-op.<u></u><u></u></span></p>
<p class=""><span style="color:rgb(31,73,125)">Rather than making “kill” have special semantics, how about just applying that rule?  An exception sent to a tasklet that hasn´t run yet just disappears and the tasklet dies.<u></u><u></u></span></p>

<p class=""><span style="color:rgb(31,73,125)">An exception sent to a dead tasklet just disappears.<u></u><u></u></span></p>
<p class=""><span style="color:rgb(31,73,125)">I think these are sensible semantics.  In my opinion, it was a mistake to design stackless such that uncought tasklet exceptions were sent to the main tasklet.</span></p></div>
</div></blockquote><div><br></div><div style>I disagree.  I think there's an argument to be made that when a new tasklet gets inserted into the scheduler, it is effectively running.  The user does not know, or care, when it actually starts running as long as it duly gets run in a fair manner.  My expectation would be that an exception raised on a not yet run by (but inserted in) the scheduler tasklet, would be raised on the main tasklet - as it has not been caught.  Also, I would expect that raising an exception on a dead tasklet would error.</div>
<div style><br></div><div style>For the most part, I just start tasklets.  I expect them to run.  But when I start micromanaging them and holding references to them to do more advanced usage, I already do things like checking to see if they are alive before performing operations on them.   Or checking to see if they are blocked on a channel.  Or whatever.  I think that based on my usage of tasklets, if someone is throwing exceptions on tasklets, they should be explicit in terms of the expected situation.  This means that it is not unreasonable to expect them to check the tasklets state before raising exceptions on them.</div>
<div style><br></div><div style>Cheers,</div><div style>Richard.</div></div></div></div>