<div dir="ltr">Hi<br>I am trying to modify the GHC rts so that every time a transaction fails to commit, instead of automatically restart it, <br>I want to preempted and add it to the end of the task queue of its HEC.<br><br>The problem is, when I try to call  yield at the point of the  ATOMICALLY_FRAME code where the transaction is restarted, <br>I get this error message:<br><br>>>Main: Control.Concurrent.STM.atomically was nested<br>>>Main: thread blocked indefinitely in an MVar operation<br><br>The point in the code of PrimOps.cmm I try to put my code is as below.<br><br>PrimOps.cmm<br>1074   /* Transaction was not valid: try again */<br>1075        ("ptr" trec) = ccall stmStartTransaction(MyCapability() "ptr",<br>1076                                                 NO_TREC "ptr");<br>1077        StgTSO_trec(CurrentTSO) = trec;<br>1078<br>1079 /* call yield function here */<br>            Capability_context_switch(MyCapability()) = 1 :: CInt;<br>            jump stg_yield_noregs();<br>            /*                          */<br>1080        jump stg_ap_v_fast<br>1081            // push the StgAtomicallyFrame again: the code generator is<br>1082            // clever enough to only assign the fields that have changed.<br>1083            (ATOMICALLY_FRAME_FIELDS(,,info_ptr,p1,p2,<br>1084                                     code,frame_result))<br>1085            (code);<br><br><br>My doubts are:<br>    Is it possible to make a preemption at that point in the ATOMICALLY_FRAME code?. If it is possible, how do I proceed?<br>   <br>Thanks for the attention.<br>Best regards.<br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>
<div><font style="COLOR:rgb(102,102,102)" size="2"><b></b></font></div><span style="COLOR:rgb(102,102,102)"></span><font style="COLOR:rgb(102,102,102)" size="2"><b>Rodrigo M. Duarte</b><br></font><font style="color:rgb(102,102,102)" size="2">Bacharelado em Engenharia de Computação<br></font><font style="COLOR:rgb(102,102,102)" color="#888888">LUPS - Laboratory of Ubiquitous and Parallel Systems<br>Computação de Alto Desempenho Sustentável</font> 
<div><font size="+0"><font color="#666666">Universidade Federal de Pelotas - UFPel</font></font></div>
<div><font size="+0"><font color="#666666"><br></font>
<table style="BORDER-BOTTOM-STYLE:none;BORDER-RIGHT-STYLE:none;BORDER-COLLAPSE:collapse;BORDER-TOP-STYLE:none;BORDER-LEFT-STYLE:none" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr style="MIN-HEIGHT:63.75pt">
<td style="PADDING-BOTTOM:0cm;MIN-HEIGHT:63.75pt;PADDING-LEFT:5.4pt;WIDTH:62.1pt;PADDING-RIGHT:5.4pt;FONT:small arial;PADDING-TOP:0cm" width="83">
<p style="TEXT-ALIGN:center;MARGIN:0px 0px 0pt" align="center"><font color="#9bbb59"><img title="image_png_part?hl=pt&part=2&thumb=1" alt="image_png_part?hl=pt&part=2&thumb=1" src="https://groups.google.com/group/openerp-brasil/attach/1669e64e0a8f070f/image_png_part?hl=pt&part=2&thumb=1"><br></font></p></td>
<td style="PADDING-BOTTOM:0cm;MIN-HEIGHT:63.75pt;PADDING-LEFT:5.4pt;WIDTH:370.1pt;PADDING-RIGHT:5.4pt;FONT:small arial;PADDING-TOP:0cm" width="493">
<p style="TEXT-ALIGN:center;MARGIN:0px 0px 0pt" align="center"><font size="1"><b><span style="BACKGROUND-COLOR:white;FONT-FAMILY:Verdana,sans-serif;COLOR:rgb(50,62,26)">Antes de imprimir este e-mail pense em sua responsabilidade e compromisso com o Meio Ambiente. </span></b><b><span style="BACKGROUND-COLOR:white;FONT-FAMILY:Verdana,sans-serif;COLOR:rgb(50,62,26)" lang="EN-US">Só imprima se for realmente necessário. </span></b></font></p>
<p style="TEXT-ALIGN:center;MARGIN:0px 0px 0pt" align="center"><font size="1"><b><span style="BACKGROUND-COLOR:white;FONT-FAMILY:Verdana,sans-serif;COLOR:rgb(50,62,26)" lang="EN-US"><br></span></b><b><i><span style="BACKGROUND-COLOR:white;FONT-FAMILY:Verdana,sans-serif;COLOR:rgb(50,62,26)" lang="EN-US">Before printing this e-mail consider its responsibility and commitment to the environment. Only print if it is really necessary.<span style="FLOAT:none"> </span></span></i></b></font></p></td></tr></tbody></table></font></div></div></div></div></div></div></div>