Changeset 164 for MicroThreading/Demo


Ignore:
Timestamp:
Feb 8, 2011, 11:05:30 AM (14 years ago)
Author:
george
Message:
  • Modified: Optimalized microthread execution from main thread.
  • Fixed: Passthrough of WaitFor on already signaled event.
Location:
MicroThreading/Demo
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • MicroThreading/Demo/Demo.lpi

    r162 r164  
    4343      </Item3>
    4444    </RequiredPackages>
    45     <Units Count="28">
     45    <Units Count="30">
    4646      <Unit0>
    4747        <Filename Value="Demo.lpr"/>
     
    5959        <ResourceBaseClass Value="Form"/>
    6060        <UnitName Value="UMainForm"/>
    61         <EditorIndex Value="6"/>
    62         <WindowIndex Value="0"/>
    63         <TopLine Value="372"/>
    64         <CursorPos X="21" Y="378"/>
     61        <IsVisibleTab Value="True"/>
     62        <EditorIndex Value="9"/>
     63        <WindowIndex Value="0"/>
     64        <TopLine Value="332"/>
     65        <CursorPos X="23" Y="342"/>
    6566        <UsageCount Value="270"/>
    6667        <Loaded Value="True"/>
     
    7071        <Filename Value="../UMicroThreading.pas"/>
    7172        <UnitName Value="UMicroThreading"/>
    72         <IsVisibleTab Value="True"/>
    7373        <EditorIndex Value="0"/>
    7474        <WindowIndex Value="0"/>
    75         <TopLine Value="976"/>
    76         <CursorPos X="18" Y="986"/>
     75        <TopLine Value="986"/>
     76        <CursorPos X="19" Y="1000"/>
    7777        <UsageCount Value="136"/>
    7878        <Loaded Value="True"/>
     
    126126        <Filename Value="../UPlatform.pas"/>
    127127        <UnitName Value="UPlatform"/>
    128         <WindowIndex Value="0"/>
    129         <TopLine Value="23"/>
    130         <CursorPos X="31" Y="38"/>
     128        <EditorIndex Value="3"/>
     129        <WindowIndex Value="0"/>
     130        <TopLine Value="25"/>
     131        <CursorPos X="41" Y="39"/>
    131132        <UsageCount Value="37"/>
     133        <Loaded Value="True"/>
    132134      </Unit9>
    133135      <Unit10>
     
    136138        <ResourceBaseClass Value="Form"/>
    137139        <UnitName Value="UMicroThreadList"/>
    138         <EditorIndex Value="4"/>
    139         <WindowIndex Value="0"/>
    140         <TopLine Value="83"/>
    141         <CursorPos X="84" Y="94"/>
     140        <EditorIndex Value="7"/>
     141        <WindowIndex Value="0"/>
     142        <TopLine Value="53"/>
     143        <CursorPos X="61" Y="61"/>
    142144        <UsageCount Value="23"/>
    143145        <Loaded Value="True"/>
     
    239241        <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/FPC/packages/fcl-base/src/syncobjs.pp"/>
    240242        <UnitName Value="syncobjs"/>
    241         <EditorIndex Value="5"/>
     243        <EditorIndex Value="8"/>
    242244        <WindowIndex Value="0"/>
    243245        <TopLine Value="35"/>
     
    248250      <Unit25>
    249251        <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/Lazarus/lcl/include/customlistview.inc"/>
    250         <EditorIndex Value="1"/>
     252        <EditorIndex Value="4"/>
    251253        <WindowIndex Value="0"/>
    252254        <TopLine Value="548"/>
     
    257259      <Unit26>
    258260        <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/Lazarus/lcl/include/listitem.inc"/>
    259         <EditorIndex Value="2"/>
     261        <EditorIndex Value="5"/>
    260262        <WindowIndex Value="0"/>
    261263        <TopLine Value="798"/>
     
    266268      <Unit27>
    267269        <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/Lazarus/lcl/include/listitems.inc"/>
    268         <EditorIndex Value="3"/>
     270        <EditorIndex Value="6"/>
    269271        <WindowIndex Value="0"/>
    270272        <TopLine Value="65"/>
     
    273275        <Loaded Value="True"/>
    274276      </Unit27>
     277      <Unit28>
     278        <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/Lazarus/lcl/forms.pp"/>
     279        <UnitName Value="Forms"/>
     280        <EditorIndex Value="1"/>
     281        <WindowIndex Value="0"/>
     282        <TopLine Value="1398"/>
     283        <CursorPos X="15" Y="1309"/>
     284        <UsageCount Value="10"/>
     285        <Loaded Value="True"/>
     286      </Unit28>
     287      <Unit29>
     288        <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/Lazarus/lcl/include/application.inc"/>
     289        <EditorIndex Value="2"/>
     290        <WindowIndex Value="0"/>
     291        <TopLine Value="2161"/>
     292        <CursorPos X="33" Y="2161"/>
     293        <UsageCount Value="10"/>
     294        <Loaded Value="True"/>
     295      </Unit29>
    275296    </Units>
    276297    <JumpHistory Count="30" HistoryIndex="29">
    277298      <Position1>
    278         <Filename Value="../UMicroThreading.pas"/>
    279         <Caret Line="371" Column="16" TopLine="350"/>
     299        <Filename Value="UMainForm.pas"/>
     300        <Caret Line="374" Column="21" TopLine="368"/>
    280301      </Position1>
    281302      <Position2>
    282         <Filename Value="../UMicroThreading.pas"/>
    283         <Caret Line="652" Column="38" TopLine="631"/>
     303        <Filename Value="UMainForm.pas"/>
     304        <Caret Line="373" Column="21" TopLine="367"/>
    284305      </Position2>
    285306      <Position3>
    286         <Filename Value="../UMicroThreading.pas"/>
    287         <Caret Line="746" Column="12" TopLine="725"/>
     307        <Filename Value="UMainForm.pas"/>
     308        <Caret Line="372" Column="21" TopLine="366"/>
    288309      </Position3>
    289310      <Position4>
    290         <Filename Value="../UMicroThreading.pas"/>
    291         <Caret Line="750" Column="31" TopLine="729"/>
     311        <Filename Value="../UMicroThreadList.pas"/>
     312        <Caret Line="94" Column="84" TopLine="83"/>
    292313      </Position4>
    293314      <Position5>
    294         <Filename Value="../UMicroThreading.pas"/>
    295         <Caret Line="753" Column="26" TopLine="732"/>
     315        <Filename Value="../UMicroThreadList.pas"/>
     316        <Caret Line="17" Column="7" TopLine="4"/>
    296317      </Position5>
    297318      <Position6>
    298         <Filename Value="../UMicroThreading.pas"/>
    299         <Caret Line="935" Column="13" TopLine="914"/>
     319        <Filename Value="../UMicroThreadList.pas"/>
     320        <Caret Line="15" Column="38" TopLine="7"/>
    300321      </Position6>
    301322      <Position7>
    302         <Filename Value="../UMicroThreading.pas"/>
    303         <Caret Line="983" Column="31" TopLine="968"/>
     323        <Filename Value="../UMicroThreadList.pas"/>
     324        <Caret Line="17" Column="12" TopLine="4"/>
    304325      </Position7>
    305326      <Position8>
    306         <Filename Value="../UMicroThreading.pas"/>
    307         <Caret Line="1013" Column="24" TopLine="992"/>
     327        <Filename Value="../UMicroThreadList.pas"/>
     328        <Caret Line="18" Column="12" TopLine="4"/>
    308329      </Position8>
    309330      <Position9>
    310         <Filename Value="../UMicroThreading.pas"/>
    311         <Caret Line="8" Column="19" TopLine="1"/>
     331        <Filename Value="../UMicroThreadList.pas"/>
     332        <Caret Line="19" Column="12" TopLine="4"/>
    312333      </Position9>
    313334      <Position10>
    314         <Filename Value="../UMicroThreading.pas"/>
    315         <Caret Line="652" Column="51" TopLine="639"/>
     335        <Filename Value="../UMicroThreadList.pas"/>
     336        <Caret Line="20" Column="12" TopLine="4"/>
    316337      </Position10>
    317338      <Position11>
    318         <Filename Value="../UMicroThreading.pas"/>
    319         <Caret Line="645" Column="28" TopLine="639"/>
     339        <Filename Value="../UMicroThreadList.pas"/>
     340        <Caret Line="21" Column="12" TopLine="4"/>
    320341      </Position11>
    321342      <Position12>
    322         <Filename Value="../UMicroThreading.pas"/>
    323         <Caret Line="653" Column="43" TopLine="639"/>
     343        <Filename Value="../UMicroThreadList.pas"/>
     344        <Caret Line="22" Column="12" TopLine="4"/>
    324345      </Position12>
    325346      <Position13>
    326         <Filename Value="../UMicroThreading.pas"/>
    327         <Caret Line="479" Column="1" TopLine="466"/>
     347        <Filename Value="UMainForm.pas"/>
     348        <Caret Line="372" Column="21" TopLine="26"/>
    328349      </Position13>
    329350      <Position14>
    330         <Filename Value="../UMicroThreading.pas"/>
    331         <Caret Line="712" Column="1" TopLine="699"/>
     351        <Filename Value="../UMicroThreadList.pas"/>
     352        <Caret Line="23" Column="12" TopLine="13"/>
    332353      </Position14>
    333354      <Position15>
    334         <Filename Value="../UMicroThreading.pas"/>
    335         <Caret Line="582" Column="18" TopLine="571"/>
     355        <Filename Value="../UMicroThreadList.pas"/>
     356        <Caret Line="68" Column="3" TopLine="53"/>
    336357      </Position15>
    337358      <Position16>
    338         <Filename Value="../UMicroThreading.pas"/>
    339         <Caret Line="583" Column="65" TopLine="571"/>
     359        <Filename Value="../UMicroThreadList.pas"/>
     360        <Caret Line="69" Column="1" TopLine="53"/>
    340361      </Position16>
    341362      <Position17>
    342         <Filename Value="../UMicroThreading.pas"/>
    343         <Caret Line="582" Column="20" TopLine="571"/>
     363        <Filename Value="UMainForm.pas"/>
     364        <Caret Line="85" Column="15" TopLine="69"/>
    344365      </Position17>
    345366      <Position18>
    346         <Filename Value="../UMicroThreading.pas"/>
    347         <Caret Line="583" Column="1" TopLine="571"/>
     367        <Filename Value="../UMicroThreadList.pas"/>
     368        <Caret Line="9" Column="43" TopLine="1"/>
    348369      </Position18>
    349370      <Position19>
    350         <Filename Value="../UMicroThreading.pas"/>
    351         <Caret Line="711" Column="1" TopLine="698"/>
     371        <Filename Value="../UMicroThreadList.pas"/>
     372        <Caret Line="72" Column="1" TopLine="53"/>
    352373      </Position19>
    353374      <Position20>
    354375        <Filename Value="../UMicroThreading.pas"/>
    355         <Caret Line="712" Column="1" TopLine="698"/>
     376        <Caret Line="1006" Column="18" TopLine="991"/>
    356377      </Position20>
    357378      <Position21>
    358379        <Filename Value="../UMicroThreading.pas"/>
    359         <Caret Line="713" Column="1" TopLine="698"/>
     380        <Caret Line="1010" Column="26" TopLine="991"/>
    360381      </Position21>
    361382      <Position22>
    362383        <Filename Value="../UMicroThreading.pas"/>
    363         <Caret Line="714" Column="1" TopLine="698"/>
     384        <Caret Line="1009" Column="22" TopLine="991"/>
    364385      </Position22>
    365386      <Position23>
    366387        <Filename Value="../UMicroThreading.pas"/>
    367         <Caret Line="715" Column="1" TopLine="698"/>
     388        <Caret Line="1004" Column="43" TopLine="991"/>
    368389      </Position23>
    369390      <Position24>
    370         <Filename Value="../UMicroThreadList.pas"/>
    371         <Caret Line="95" Column="54" TopLine="83"/>
     391        <Filename Value="UMainForm.pas"/>
     392        <Caret Line="337" Column="23" TopLine="327"/>
    372393      </Position24>
    373394      <Position25>
    374         <Filename Value="../UMicroThreading.pas"/>
    375         <Caret Line="240" Column="45" TopLine="227"/>
     395        <Filename Value="UMainForm.pas"/>
     396        <Caret Line="338" Column="23" TopLine="328"/>
    376397      </Position25>
    377398      <Position26>
    378         <Filename Value="../UMicroThreading.pas"/>
    379         <Caret Line="984" Column="40" TopLine="979"/>
     399        <Filename Value="UMainForm.pas"/>
     400        <Caret Line="339" Column="23" TopLine="329"/>
    380401      </Position26>
    381402      <Position27>
    382         <Filename Value="../UMicroThreading.pas"/>
    383         <Caret Line="992" Column="38" TopLine="979"/>
     403        <Filename Value="UMainForm.pas"/>
     404        <Caret Line="338" Column="23" TopLine="328"/>
    384405      </Position27>
    385406      <Position28>
    386         <Filename Value="../UMicroThreading.pas"/>
    387         <Caret Line="989" Column="55" TopLine="976"/>
     407        <Filename Value="UMainForm.pas"/>
     408        <Caret Line="339" Column="23" TopLine="329"/>
    388409      </Position28>
    389410      <Position29>
    390         <Filename Value="../UMicroThreading.pas"/>
    391         <Caret Line="990" Column="24" TopLine="976"/>
     411        <Filename Value="UMainForm.pas"/>
     412        <Caret Line="340" Column="23" TopLine="330"/>
    392413      </Position29>
    393414      <Position30>
    394         <Filename Value="../UMicroThreading.pas"/>
    395         <Caret Line="989" Column="29" TopLine="976"/>
     415        <Filename Value="UMainForm.pas"/>
     416        <Caret Line="341" Column="23" TopLine="331"/>
    396417      </Position30>
    397418    </JumpHistory>
  • MicroThreading/Demo/UMainForm.lfm

    r162 r164  
    55  Width = 816
    66  Caption = 'MicroThreading demo'
    7   ClientHeight = 533
     7  ClientHeight = 514
    88  ClientWidth = 816
     9  Menu = MainMenu1
    910  OnCreate = FormCreate
    1011  OnDestroy = FormDestroy
     
    1314  object PageControl1: TPageControl
    1415    Left = 8
    15     Height = 519
     16    Height = 500
    1617    Top = 8
    1718    Width = 802
     
    2223    object TabSheet2: TTabSheet
    2324      Caption = 'Scheduler state'
    24       ClientHeight = 493
     25      ClientHeight = 474
    2526      ClientWidth = 794
    2627      object GroupBox1: TGroupBox
     
    3334        ClientWidth = 201
    3435        TabOrder = 0
    35         object Label5: TLabel
    36           Left = 9
    37           Height = 14
    38           Top = 4
    39           Width = 117
    40           Caption = 'Logical processor count:'
    41           ParentColor = False
    42         end
    43         object Label6: TLabel
    44           Left = 150
    45           Height = 14
    46           Top = 4
    47           Width = 13
    48           Caption = '    '
    49           ParentColor = False
    50         end
    51         object Label7: TLabel
    52           Left = 8
    53           Height = 14
    54           Top = 20
    55           Width = 69
    56           Caption = 'Thread count:'
    57           ParentColor = False
    58         end
    59         object Label8: TLabel
    60           Left = 9
    61           Height = 14
    62           Top = 36
    63           Width = 95
    64           Caption = 'Micro thread count:'
    65           ParentColor = False
    66         end
    67         object Label9: TLabel
    68           Left = 150
    69           Height = 14
    70           Top = 20
    71           Width = 13
    72           Caption = '    '
    73           ParentColor = False
    74         end
    75         object Label10: TLabel
    76           Left = 151
    77           Height = 14
    78           Top = 36
    79           Width = 13
    80           Caption = '    '
    81           ParentColor = False
    82         end
    8336        object Label15: TLabel
    8437          Left = 9
     
    403356    top = 115
    404357  end
     358  object MainMenu1: TMainMenu
     359    left = 512
     360    top = 115
     361    object MenuItem1: TMenuItem
     362      Caption = 'New Item1'
     363      object MenuItem2: TMenuItem
     364        Caption = 'New Item2'
     365      end
     366      object MenuItem4: TMenuItem
     367        Caption = 'New Item4'
     368      end
     369    end
     370    object MenuItem3: TMenuItem
     371      Caption = 'New Item3'
     372    end
     373  end
    405374end
  • MicroThreading/Demo/UMainForm.pas

    r162 r164  
    77uses
    88  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
    9   ComCtrls, ExtCtrls, Spin, UMicroThreading, DateUtils, UPlatform,
     9  ComCtrls, ExtCtrls, Spin, Menus, UMicroThreading, DateUtils, UPlatform,
    1010  UMicroThreadList, UThreadEx;
    1111
     
    4646    GroupBox2: TGroupBox;
    4747    GroupBox3: TGroupBox;
    48     Label10: TLabel;
    4948    Label11: TLabel;
    5049    Label12: TLabel;
     
    5756    Label3: TLabel;
    5857    Label4: TLabel;
    59     Label5: TLabel;
    60     Label6: TLabel;
    61     Label7: TLabel;
    62     Label8: TLabel;
    63     Label9: TLabel;
     58    MainMenu1: TMainMenu;
    6459    Memo1: TMemo;
     60    MenuItem1: TMenuItem;
     61    MenuItem2: TMenuItem;
     62    MenuItem3: TMenuItem;
     63    MenuItem4: TMenuItem;
    6564    PageControl1: TPageControl;
    6665    SpinEdit1: TSpinEdit;
     
    134133  DoubleBuffered := True;
    135134//  ListView1.DoubleBuffered := True;
    136   Label6.Caption := IntToStr(GetLogicalProcessorCount);
    137135  Event := TMicroThreadEvent.Create;
    138136  MicroThreadList := TMicroThreadList.Create(Self);
     
    345343  Label2.Caption := DateTimeToStr(NowPrecise) + ' ' +
    346344    FloatToStr(Frac(NowPrecise / OneSecond));
    347   Label9.Caption := IntToStr(MainScheduler.ThreadPoolCount);
    348   Label10.Caption := IntToStr(MainScheduler.MicroThreadCount);
    349345end;
    350346
Note: See TracChangeset for help on using the changeset viewer.