Changeset 143 for MicroThreading


Ignore:
Timestamp:
Jan 24, 2011, 4:15:44 PM (13 years ago)
Author:
george
Message:
  • Added: Preliminary definition of pool thread for multi threaded scheduling.
Location:
MicroThreading
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • MicroThreading/Demo/Demo.lpi

    r142 r143  
    4242      </Item3>
    4343    </RequiredPackages>
    44     <Units Count="38">
     44    <Units Count="39">
    4545      <Unit0>
    4646        <Filename Value="Demo.lpr"/>
     
    7272        <EditorIndex Value="3"/>
    7373        <WindowIndex Value="0"/>
    74         <TopLine Value="152"/>
    75         <CursorPos X="32" Y="165"/>
     74        <TopLine Value="128"/>
     75        <CursorPos X="36" Y="144"/>
    7676        <UsageCount Value="21"/>
    7777        <Loaded Value="True"/>
     
    272272        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/packages/fcl-base/src/syncobjs.pp"/>
    273273        <UnitName Value="syncobjs"/>
    274         <EditorIndex Value="10"/>
     274        <EditorIndex Value="11"/>
    275275        <WindowIndex Value="0"/>
    276276        <TopLine Value="57"/>
     
    281281      <Unit29>
    282282        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/inc/threadh.inc"/>
    283         <EditorIndex Value="11"/>
     283        <EditorIndex Value="12"/>
    284284        <WindowIndex Value="0"/>
    285285        <TopLine Value="18"/>
     
    290290      <Unit30>
    291291        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/inc/thread.inc"/>
    292         <EditorIndex Value="13"/>
     292        <EditorIndex Value="14"/>
    293293        <WindowIndex Value="0"/>
    294294        <TopLine Value="109"/>
     
    299299      <Unit31>
    300300        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/win/sysosh.inc"/>
    301         <EditorIndex Value="12"/>
     301        <EditorIndex Value="13"/>
    302302        <WindowIndex Value="0"/>
    303303        <TopLine Value="12"/>
     
    308308      <Unit32>
    309309        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/>
    310         <EditorIndex Value="5"/>
     310        <EditorIndex Value="6"/>
    311311        <WindowIndex Value="0"/>
    312312        <TopLine Value="1507"/>
     
    317317      <Unit33>
    318318        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/win/tthread.inc"/>
    319         <EditorIndex Value="7"/>
     319        <EditorIndex Value="8"/>
    320320        <WindowIndex Value="0"/>
    321321        <TopLine Value="96"/>
     
    326326      <Unit34>
    327327        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/win/wininc/func.inc"/>
    328         <EditorIndex Value="9"/>
     328        <EditorIndex Value="10"/>
    329329        <WindowIndex Value="0"/>
    330330        <TopLine Value="130"/>
     
    335335      <Unit35>
    336336        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/win/wininc/defines.inc"/>
    337         <EditorIndex Value="8"/>
     337        <EditorIndex Value="9"/>
    338338        <WindowIndex Value="0"/>
    339339        <TopLine Value="1923"/>
     
    344344      <Unit36>
    345345        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/objpas/classes/classes.inc"/>
    346         <EditorIndex Value="6"/>
     346        <EditorIndex Value="7"/>
    347347        <WindowIndex Value="0"/>
    348348        <TopLine Value="109"/>
     
    353353      <Unit37>
    354354        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/inc/objpash.inc"/>
    355         <EditorIndex Value="4"/>
     355        <EditorIndex Value="5"/>
    356356        <WindowIndex Value="0"/>
    357357        <TopLine Value="181"/>
     
    360360        <Loaded Value="True"/>
    361361      </Unit37>
     362      <Unit38>
     363        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/objpas/sysutils/osutilsh.inc"/>
     364        <EditorIndex Value="4"/>
     365        <WindowIndex Value="0"/>
     366        <TopLine Value="14"/>
     367        <CursorPos X="11" Y="27"/>
     368        <UsageCount Value="10"/>
     369        <Loaded Value="True"/>
     370      </Unit38>
    362371    </Units>
    363     <JumpHistory Count="30" HistoryIndex="29">
     372    <JumpHistory Count="30" HistoryIndex="28">
    364373      <Position1>
    365         <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/inc/threadh.inc"/>
    366         <Caret Line="63" Column="35" TopLine="49"/>
     374        <Filename Value="../UMicroThreading.pas"/>
     375        <Caret Line="189" Column="1" TopLine="180"/>
    367376      </Position1>
    368377      <Position2>
    369         <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/inc/threadh.inc"/>
    370         <Caret Line="31" Column="50" TopLine="18"/>
     378        <Filename Value="../UMicroThreading.pas"/>
     379        <Caret Line="190" Column="1" TopLine="180"/>
    371380      </Position2>
    372381      <Position3>
    373382        <Filename Value="../UMicroThreading.pas"/>
    374         <Caret Line="24" Column="7" TopLine="23"/>
     383        <Caret Line="185" Column="1" TopLine="180"/>
    375384      </Position3>
    376385      <Position4>
    377386        <Filename Value="../UMicroThreading.pas"/>
    378         <Caret Line="152" Column="4" TopLine="180"/>
     387        <Caret Line="186" Column="1" TopLine="180"/>
    379388      </Position4>
    380389      <Position5>
    381390        <Filename Value="../UMicroThreading.pas"/>
    382         <Caret Line="189" Column="1" TopLine="180"/>
     391        <Caret Line="191" Column="1" TopLine="180"/>
    383392      </Position5>
    384393      <Position6>
    385394        <Filename Value="../UMicroThreading.pas"/>
    386         <Caret Line="190" Column="1" TopLine="180"/>
     395        <Caret Line="149" Column="1" TopLine="136"/>
    387396      </Position6>
    388397      <Position7>
    389398        <Filename Value="../UMicroThreading.pas"/>
    390         <Caret Line="185" Column="1" TopLine="180"/>
     399        <Caret Line="189" Column="1" TopLine="176"/>
    391400      </Position7>
    392401      <Position8>
    393402        <Filename Value="../UMicroThreading.pas"/>
    394         <Caret Line="186" Column="1" TopLine="180"/>
     403        <Caret Line="190" Column="1" TopLine="176"/>
    395404      </Position8>
    396405      <Position9>
    397406        <Filename Value="../UMicroThreading.pas"/>
    398         <Caret Line="191" Column="1" TopLine="180"/>
     407        <Caret Line="185" Column="1" TopLine="176"/>
    399408      </Position9>
    400409      <Position10>
    401410        <Filename Value="../UMicroThreading.pas"/>
    402         <Caret Line="149" Column="1" TopLine="136"/>
     411        <Caret Line="186" Column="1" TopLine="176"/>
    403412      </Position10>
    404413      <Position11>
    405414        <Filename Value="../UMicroThreading.pas"/>
    406         <Caret Line="189" Column="1" TopLine="176"/>
     415        <Caret Line="191" Column="1" TopLine="176"/>
    407416      </Position11>
    408417      <Position12>
    409418        <Filename Value="../UMicroThreading.pas"/>
    410         <Caret Line="190" Column="1" TopLine="176"/>
     419        <Caret Line="149" Column="1" TopLine="136"/>
    411420      </Position12>
    412421      <Position13>
    413422        <Filename Value="../UMicroThreading.pas"/>
    414         <Caret Line="185" Column="1" TopLine="176"/>
     423        <Caret Line="156" Column="1" TopLine="136"/>
    415424      </Position13>
    416425      <Position14>
    417426        <Filename Value="../UMicroThreading.pas"/>
    418         <Caret Line="186" Column="1" TopLine="176"/>
     427        <Caret Line="157" Column="1" TopLine="136"/>
    419428      </Position14>
    420429      <Position15>
    421430        <Filename Value="../UMicroThreading.pas"/>
    422         <Caret Line="191" Column="1" TopLine="176"/>
     431        <Caret Line="158" Column="1" TopLine="136"/>
    423432      </Position15>
    424433      <Position16>
    425434        <Filename Value="../UMicroThreading.pas"/>
    426         <Caret Line="149" Column="1" TopLine="136"/>
     435        <Caret Line="189" Column="1" TopLine="176"/>
    427436      </Position16>
    428437      <Position17>
    429438        <Filename Value="../UMicroThreading.pas"/>
    430         <Caret Line="156" Column="1" TopLine="136"/>
     439        <Caret Line="190" Column="1" TopLine="176"/>
    431440      </Position17>
    432441      <Position18>
    433442        <Filename Value="../UMicroThreading.pas"/>
    434         <Caret Line="157" Column="1" TopLine="136"/>
     443        <Caret Line="409" Column="21" TopLine="387"/>
    435444      </Position18>
    436445      <Position19>
    437446        <Filename Value="../UMicroThreading.pas"/>
    438         <Caret Line="158" Column="1" TopLine="136"/>
     447        <Caret Line="206" Column="18" TopLine="201"/>
    439448      </Position19>
    440449      <Position20>
    441450        <Filename Value="../UMicroThreading.pas"/>
    442         <Caret Line="189" Column="1" TopLine="176"/>
     451        <Caret Line="21" Column="15" TopLine="7"/>
    443452      </Position20>
    444453      <Position21>
    445454        <Filename Value="../UMicroThreading.pas"/>
    446         <Caret Line="190" Column="1" TopLine="176"/>
     455        <Caret Line="123" Column="50" TopLine="110"/>
    447456      </Position21>
    448457      <Position22>
    449458        <Filename Value="../UMicroThreading.pas"/>
    450         <Caret Line="409" Column="21" TopLine="387"/>
     459        <Caret Line="165" Column="29" TopLine="145"/>
    451460      </Position22>
    452461      <Position23>
    453462        <Filename Value="../UMicroThreading.pas"/>
    454         <Caret Line="206" Column="18" TopLine="201"/>
     463        <Caret Line="148" Column="31" TopLine="135"/>
    455464      </Position23>
    456465      <Position24>
    457466        <Filename Value="../UMicroThreading.pas"/>
    458         <Caret Line="21" Column="15" TopLine="7"/>
     467        <Caret Line="165" Column="26" TopLine="152"/>
    459468      </Position24>
    460469      <Position25>
    461470        <Filename Value="../UMicroThreading.pas"/>
    462         <Caret Line="123" Column="50" TopLine="110"/>
     471        <Caret Line="148" Column="31" TopLine="148"/>
    463472      </Position25>
    464473      <Position26>
    465474        <Filename Value="../UMicroThreading.pas"/>
    466         <Caret Line="165" Column="29" TopLine="145"/>
     475        <Caret Line="150" Column="31" TopLine="135"/>
    467476      </Position26>
    468477      <Position27>
    469478        <Filename Value="../UMicroThreading.pas"/>
    470         <Caret Line="148" Column="31" TopLine="135"/>
     479        <Caret Line="80" Column="33" TopLine="68"/>
    471480      </Position27>
    472481      <Position28>
    473482        <Filename Value="../UMicroThreading.pas"/>
    474         <Caret Line="165" Column="26" TopLine="152"/>
     483        <Caret Line="143" Column="12" TopLine="136"/>
    475484      </Position28>
    476485      <Position29>
    477486        <Filename Value="../UMicroThreading.pas"/>
    478         <Caret Line="148" Column="31" TopLine="148"/>
     487        <Caret Line="144" Column="36" TopLine="128"/>
    479488      </Position29>
    480489      <Position30>
    481         <Filename Value="../UMicroThreading.pas"/>
    482         <Caret Line="150" Column="31" TopLine="135"/>
     490        <Filename Value="../../../../Programy/Lazarus/0.9.31_2.4.3/fpc/2.4.3/source/rtl/objpas/sysutils/osutilsh.inc"/>
     491        <Caret Line="27" Column="11" TopLine="14"/>
    483492      </Position30>
    484493    </JumpHistory>
  • MicroThreading/UMicroThreading.pas

    r142 r143  
    7272  TMicroThreadMethod = class(TMicroThread)
    7373    Method: TMicroThreadEvent;
     74    procedure Execute; override;
     75  end;
     76
     77  { TMicroThreadSchedulerPoolThread }
     78
     79  TMicroThreadSchedulerPoolThread = class(TThread)
     80    Scheduler: TMicroThreadScheduler;
    7481    procedure Execute; override;
    7582  end;
     
    125132implementation
    126133
     134{ TMicroThreadSchedulerPoolThread }
     135
     136procedure TMicroThreadSchedulerPoolThread.Execute;
     137var
     138  ExecutedCount: Integer;
     139begin
     140  inherited Execute;
     141  try
     142    repeat
     143      ExecutedCount := Scheduler.Execute(10);
     144      if ExecutedCount = 0 then Sleep(1);
     145    until Terminated;
     146  except
     147    on E: Exception do
     148      //ExceptionHandler(E);
     149  end;
     150end;
     151
    127152{ TMicroThreadMethod }
    128153
Note: See TracChangeset for help on using the changeset viewer.