Product Documentation

c-treeACE V10.0 Update Guide

Previous Topic

Next Topic

Ensure Proper Mutex Control When Adding Buffers to Commit List

Internal c-treeACE QA testing observed the following messages logged to CTSTATUS.FCS:

Tue Jul 21 14:04:15 2009

- User# 00019 WARNING: ct_cmnod adjusted ct_cmnod:1 list_count:0 buffers:0 aux:0

Tue Jul 21 14:04:15 2009

- User# 00019 WARNING: ct_cmnod adjusted ct_cmnod:-1 list_count:0 buffers:0 aux:0

The function that adds an index buffer to the commit node list checks if the buffer is on the list before it acquires the mutex that serializes access to the list. As a result, the function might see the buffer on the commit list when it is not actually on the commit list. In this scenario, it might skip adding the buffer to the commit list, however, still increment the count of buffers that reside on the commit list.

To resolve this problem, the logic has been modified to check if the buffer is on the commit list after acquiring the list mutex. This same approach was applied to logic for handling data cache pages.

TOCIndex