Re: [Firebird-devel] JRD_reschedule

2022-02-14 Thread Adriano dos Santos Fernandes
On 14/02/2022 10:43, Alex Peshkoff via Firebird-devel wrote:
> 
> - AST (yes, 'A'-async is wrong tday, but I use traditional term) processing

That is the part I was missing, thanks.

BTW in thread_db::reschedule() we have:

-

void thread_db::reschedule()
{
// Somebody has kindly offered to relinquish
// control so that somebody else may run

checkCancelState();

StableAttachmentPart::Sync* sync =
this->getAttachment()->getStable()->getSync();
Database* dbb = this->getDatabase();

if (sync->hasContention())
{
FB_UINT64 cnt = sync->getLockCounter();

EngineCheckout cout(this, FB_FUNCTION);
Thread::yield();

while (sync->hasContention() && (sync->getLockCounter() == cnt))
Thread::sleep(1);
}

checkCancelState();

Monitoring::checkState(this);

if (tdbb_quantum <= 0)
tdbb_quantum = (tdbb_flags & TDBB_sweeper) ? SWEEP_QUANTUM : 
QUANTUM;
}

-

Should not the checkCancelState() be better inside the "if
(sync->hasContention())" as the no contention case just checked it?


Adriano


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] JRD_reschedule

2022-02-14 Thread Alex Peshkoff via Firebird-devel

On 2/14/22 15:33, Adriano dos Santos Fernandes wrote:

Hi!

What is the importance of JRD_reschedule today?

More specifically speaking, verifying contention and "checking out"?



- AST (yes, 'A'-async is wrong tday, but I use traditional term) processing
- cancel, shutdown, etc. processing




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] JRD_reschedule

2022-02-14 Thread Adriano dos Santos Fernandes
Hi!

What is the importance of JRD_reschedule today?

More specifically speaking, verifying contention and "checking out"?


Adriano


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel