Skip to content

Commit a71621e

Browse files
author
Janusz Augustyński
committed
Zmiana w “flow-drv” z “lost_count” na “reported_count”
1 parent a5a283e commit a71621e

4 files changed

Lines changed: 45 additions & 49 deletions

File tree

compile/E_cplus_S_language.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ typedef P *Pp; // Wskaźnik do tablic adresów.
170170
// I warunkowa– gdy jest stan pojedynczego obiektu.
171171
#define X_U(module,report) if( !U_E(module,report) ){} else X_F(module,report)
172172
// Czekanie na ‹raport› kolekcji.
173-
#define X_B(module,report,lost_count) if( !E_flow_Q_report_I_wait( _X_var(module,report), (lost_count) )){} else
173+
#define X_B(module,report,reported_count) if( !E_flow_Q_report_I_wait( _X_var(module,report), (reported_count) )){} else
174174
// Czyszczenie licznika raportów.
175175
#define X_L(module,report) E_flow_Q_report_I_clear( _X_var(module,report) )
176176
//------------------------------------------------------------------------------
@@ -221,7 +221,7 @@ typedef P *Pp; // Wskaźnik do tablic adresów.
221221
#define Y_M(period) E_flow_Q_timer_M(period)
222222
#define Y_W(timer) E_flow_Q_timer_W(timer)
223223
// Czekanie na pełny okres ‹cyklera›.
224-
#define Y_B(timer,lost_count) if( !E_flow_Q_timer_I_wait( (timer), (lost_count) )){} else
224+
#define Y_B(timer,reported_count) if( !E_flow_Q_timer_I_wait( (timer), (reported_count) )){} else
225225
//------------------------------------------------------------------------------
226226
// Utworzenie i wyrzucenie ‹impulsatora›.
227227
#define Yi_M(module,impulser) I _Yi_var(module,impulser) = E_flow_Q_impulser_M( _Yi_uid(module,impulser) )

module/base/flow-drv.cx

Lines changed: 38 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ struct E_flow_Q_report_Z
8888
struct E_flow_Q_timer_Z
8989
{ Z_clock_time left;
9090
Z_clock_time period;
91-
N lost_count;
91+
N reported_count;
9292
N uid;
9393
I task_to;
9494
};
@@ -1534,7 +1534,7 @@ E_flow_Q_report_I_signal( I id
15341534
_export
15351535
B
15361536
E_flow_Q_report_I_wait( I id
1537-
, N *lost_count
1537+
, N *reported_count
15381538
){ B r;
15391539
struct E_flow_Q_report_Z *report = E_mem_Q_tab_R( E_base_S->E_flow_Q_report_S, id );
15401540
if( report->reported_count )
@@ -1557,8 +1557,8 @@ E_flow_Q_report_I_wait( I id
15571557
r = E_flow_Q_task_I_schedule();
15581558
report = E_mem_Q_tab_R( E_base_S->E_flow_Q_report_S, id );
15591559
}
1560-
if( lost_count )
1561-
*lost_count = report->reported_count - 1;
1560+
if( reported_count )
1561+
*reported_count = report->reported_count;
15621562
report->reported_count = 0;
15631563
return r;
15641564
}
@@ -1583,21 +1583,19 @@ E_flow_Q_timer_M( N period
15831583
#ifdef E_flow_drv_C_clock_monotonic
15841584
timer->period.Z_clock_time_minor_field *= 1000;
15851585
#endif
1586-
timer->lost_count = 0;
1586+
timer->reported_count = 0;
15871587
timer->uid = ~0;
15881588
timer->task_to = E_base_S->E_flow_Q_task_S_current;
1589-
if( E_mem_Q_tab_R_n( E_base_S->E_flow_Q_timer_S ) != 1 )
1590-
{ for_each_out( timer_id, timer_id_, E_base_S->E_flow_Q_timer_S, E_mem_Q_tab )
1591-
{ struct E_flow_Q_timer_Z *timer_ = E_mem_Q_tab_R( E_base_S->E_flow_Q_timer_S, timer_id_ );
1592-
if( _timerisset( &timer_->period ) // Jest co najmniej jeden ‹cykler›
1593-
|| _timerisset( &timer_->left ) // lub co najmniej jeden wzbudzony ‹impulsator›.
1594-
)
1595-
{ _timeradd( &tv, &timer->period, &tv );
1596-
if( _timercmp( &tv, <, &E_base_S->E_flow_Q_timer_S_next_real_time ))
1597-
E_base_S->E_flow_Q_timer_S_next_real_time = tv;
1598-
_timersub( &tv, &E_base_S->E_flow_Q_timer_S_last_real_time, &timer->left );
1599-
return timer_id;
1600-
}
1589+
for_each_out( timer_id, timer_id_, E_base_S->E_flow_Q_timer_S, E_mem_Q_tab )
1590+
{ struct E_flow_Q_timer_Z *timer_ = E_mem_Q_tab_R( E_base_S->E_flow_Q_timer_S, timer_id_ );
1591+
if( _timerisset( &timer_->period ) // Jest co najmniej jeden ‹cykler›
1592+
|| _timerisset( &timer_->left ) // lub co najmniej jeden wzbudzony ‹impulsator›.
1593+
)
1594+
{ _timeradd( &tv, &timer->period, &tv );
1595+
if( _timercmp( &tv, <, &E_base_S->E_flow_Q_timer_S_next_real_time ))
1596+
E_base_S->E_flow_Q_timer_S_next_real_time = tv;
1597+
_timersub( &tv, &E_base_S->E_flow_Q_timer_S_last_real_time, &timer->left );
1598+
return timer_id;
16011599
}
16021600
}
16031601
E_base_S->E_flow_Q_timer_S_last_real_time = tv;
@@ -1625,15 +1623,15 @@ E_flow_Q_timer_W( I id
16251623
_export
16261624
B
16271625
E_flow_Q_timer_I_wait( I id
1628-
, N *lost_count
1626+
, N *reported_count
16291627
){ struct E_flow_Q_task_Z *task = E_mem_Q_tab_R( E_base_S->E_flow_Q_task_S, E_base_S->E_flow_Q_task_S_current );
16301628
task->run_state = E_flow_Z_run_state_S_waiting_for_timer;
16311629
task->run_state_object = id;
16321630
B r = E_flow_Q_task_I_schedule();
16331631
struct E_flow_Q_timer_Z *timer = E_mem_Q_tab_R( E_base_S->E_flow_Q_timer_S, id );
1634-
if( lost_count )
1635-
*lost_count = timer->lost_count;
1636-
timer->lost_count = 0;
1632+
if( reported_count )
1633+
*reported_count = timer->reported_count;
1634+
timer->reported_count = 0;
16371635
return r;
16381636
}
16391637
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1693,18 +1691,16 @@ E_flow_Q_impulser_I_activate( I id
16931691
#ifdef E_flow_drv_C_clock_monotonic
16941692
timer->left.Z_clock_time_minor_field *= 1000;
16951693
#endif
1696-
if( E_mem_Q_tab_R_n( E_base_S->E_flow_Q_timer_S ) != 1 )
1697-
{ for_each_out( id, timer_id_, E_base_S->E_flow_Q_timer_S, E_mem_Q_tab )
1698-
{ struct E_flow_Q_timer_Z *timer_ = E_mem_Q_tab_R( E_base_S->E_flow_Q_timer_S, timer_id_ );
1699-
if( _timerisset( &timer_->period )
1700-
|| _timerisset( &timer_->left )
1701-
)
1702-
{ _timeradd( &tv, &timer->left, &tv );
1703-
if( _timercmp( &tv, <, &E_base_S->E_flow_Q_timer_S_next_real_time ))
1704-
E_base_S->E_flow_Q_timer_S_next_real_time = tv;
1705-
_timersub( &tv, &E_base_S->E_flow_Q_timer_S_last_real_time, &timer->left );
1706-
return;
1707-
}
1694+
for_each_out( id, timer_id_, E_base_S->E_flow_Q_timer_S, E_mem_Q_tab )
1695+
{ struct E_flow_Q_timer_Z *timer_ = E_mem_Q_tab_R( E_base_S->E_flow_Q_timer_S, timer_id_ );
1696+
if( _timerisset( &timer_->period )
1697+
|| _timerisset( &timer_->left )
1698+
)
1699+
{ _timeradd( &tv, &timer->left, &tv );
1700+
if( _timercmp( &tv, <, &E_base_S->E_flow_Q_timer_S_next_real_time ))
1701+
E_base_S->E_flow_Q_timer_S_next_real_time = tv;
1702+
_timersub( &tv, &E_base_S->E_flow_Q_timer_S_last_real_time, &timer->left );
1703+
return;
17081704
}
17091705
}
17101706
E_base_S->E_flow_Q_timer_S_last_real_time = tv;
@@ -1917,33 +1913,33 @@ Loop:
19171913
_timerover( &suspend_time );
19181914
for_each( timer_id, E_base_S->E_flow_Q_timer_S, E_mem_Q_tab )
19191915
{ struct E_flow_Q_timer_Z *timer = E_mem_Q_tab_R( E_base_S->E_flow_Q_timer_S, timer_id );
1920-
if( _timerisset( &timer->period )) // ‹cykler›.
1921-
{ if( !_timercmp( &elapsed_time, <, &timer->left )) // ‹cykler› wykonał obieg— ‹zadanie› do wznowienia.
1916+
if( _timerisset( &timer->period )) // ‹cykler›
1917+
{ if( !_timercmp( &elapsed_time, <, &timer->left )) // ‹Cykler› wykonał obieg— ‹zadanie› do wznowienia.
19221918
{ Z_clock_time overlate_time;
19231919
_timersub( &elapsed_time, &timer->left, &overlate_time );
1924-
if( !_timercmp( &overlate_time, <, &timer->period )) // ‹cykler› wykonał więcej niż jeden obieg.
1920+
if( !_timercmp( &overlate_time, <, &timer->period )) // ‹Cykler› wykonał więcej niż jeden obieg.
19251921
{ do
1926-
{ timer->lost_count++;
1922+
{ timer->reported_count++;
19271923
_timersub( &overlate_time, &timer->period, &overlate_time );
19281924
}while( !_timercmp( &overlate_time, <, &timer->period ));
1929-
GV_(NA); Gd( timer->lost_count ); Gd( timer->period.tv_sec ); Gd( timer->period.Z_clock_time_minor_field ); Gd( overlate_time.tv_sec ); Gd( overlate_time.Z_clock_time_minor_field ); // lost time.
1930-
}
1925+
GV_(NA); Gd( timer->reported_count ); Gd( timer->period.tv_sec ); Gd( timer->period.Z_clock_time_minor_field ); Gd( overlate_time.tv_sec ); Gd( overlate_time.Z_clock_time_minor_field ); // lost time
1926+
}else
1927+
timer->reported_count++;
19311928
_timersub( &timer->period, &overlate_time, &timer->left );
19321929
struct E_flow_Q_task_Z *task = E_mem_Q_tab_R( E_base_S->E_flow_Q_task_S, timer->task_to );
19331930
if( task->run_state == E_flow_Z_run_state_S_waiting_for_timer
19341931
&& task->run_state_object == timer_id
19351932
)
19361933
{ task->run_state = E_flow_Z_run_state_S_ready;
19371934
some_task_got_ready = yes;
1938-
}else
1939-
timer->lost_count++;
1935+
}
19401936
}else
19411937
_timersub( &timer->left, &elapsed_time, &timer->left );
19421938
if( _timercmp( &timer->left, <, &suspend_time ))
19431939
{ suspend_time = timer->left;
19441940
some_timer_is_active = yes;
19451941
}
1946-
}else if( _timerisset( &timer->left )) // Aktywowany ‹impulsator›.
1942+
}else if( _timerisset( &timer->left )) // aktywowany ‹impulsator›
19471943
{ if( !_timercmp( &elapsed_time, <, &timer->left ))
19481944
{ _timerclear( &timer->left );
19491945
struct E_flow_Q_task_Z *task = E_mem_Q_tab_R( E_base_S->E_flow_Q_task_S, timer->task_to );

module/base/text.cx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1299,9 +1299,9 @@ _export
12991299
N
13001300
E_text_Z_s_I_append_s0_0( Pc *s
13011301
, Pc t
1302-
){ N l = E_text_Z_s0_R_l(t) + 1;
1302+
){ N l = E_text_Z_s0_R_l(t);
13031303
Pc p;
1304-
if( !( p = E_mem_Q_blk_I_append( s, l )))
1304+
if( !( p = E_mem_Q_blk_I_append( s, l + 1 )))
13051305
return 0;
13061306
E_text_Z_s_P_copy_sl_0( p, t, l );
13071307
return l;

program/ui/main.cx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -607,10 +607,10 @@ D( main, timer_draw )
607607
E_main_Q_timer_S_minute = time_s->tm_min;
608608
E_main_Q_timer_S_second = time_s->tm_sec;
609609
I timer = Y_M(1000000);
610-
O{ N timer_lost_count;
611-
Y_B( timer, &timer_lost_count )
610+
O{ N timer_reported_count;
611+
Y_B( timer, &timer_reported_count )
612612
break;
613-
E_main_Q_timer_S_second += 1 + timer_lost_count;
613+
E_main_Q_timer_S_second += timer_reported_count;
614614
E_main_Q_timer_S_hour += E_main_Q_timer_S_second / 3600;
615615
E_main_Q_timer_S_second %= 3600;
616616
E_main_Q_timer_S_minute += E_main_Q_timer_S_second / 60;

0 commit comments

Comments
 (0)