<div dir="ltr"><div>Hi,</div><div><br></div><div>I was reading some documents about scheduler, to my understanding there will be no long_schedule issue since BIF has trap mechanism. Then I found this, I couldn't understand, the reduction is keeping increasing, why the BIF(lists:seq) is not interrupted for more than 10ms ?</div><div><br></div><div>Could someone please explain this ?</div><div><br></div><div>1> erlang:system_monitor(self(),[{long_schedule, 10}]).</div><div>undefined</div><div><div>2>  Pid = spawn(fun()->lists:seq(1,2000000000) end).</div><div><0.65.0></div></div><div>3>flush().</div><div><br></div><div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,21},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,38},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,17},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,21},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,23},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,31},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,30},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,43},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,53},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,56},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,51},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,81},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,17},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,18},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,110},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,74},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,24},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,76},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,112},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,43},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,130},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,205},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div><div>Shell got {monitor,<0.65.0>,long_schedule,</div><div>                   [{timeout,77},</div><div>                    {in,{lists,seq_loop,3}},</div><div>                    {out,{lists,seq_loop,3}}]}</div></div><div><div>20>  process_info(Pid, reductions).                 </div><div>{reductions,4166000}</div><div>21>  process_info(Pid, reductions).</div><div>{reductions,7150000}</div><div>22>  process_info(Pid, reductions).</div><div>{reductions,8328000}</div><div>23>  process_info(Pid, reductions).</div><div>{reductions,12330000}</div><div>24>  process_info(Pid, reductions).</div><div>{reductions,14354000}</div><div>25>  process_info(Pid, reductions).</div><div>{reductions,24774000}</div></div><div><br></div><div><br></div><div><br></div><div>Br,</div><div>Alex</div></div>