| 170 | } |
| 171 | |
| 172 | static inline void removeDirty(BufferControl* bcb, BufferDesc* bdb) |
| 173 | { |
| 174 | if (bdb->bdb_dirty.que_forward == &bdb->bdb_dirty) |
| 175 | return; |
| 176 | |
| 177 | Sync dirtySync(&bcb->bcb_syncDirtyBdbs, "removeDirty"); |
| 178 | dirtySync.lock(SYNC_EXCLUSIVE); |
| 179 | |
| 180 | if (bdb->bdb_dirty.que_forward == &bdb->bdb_dirty) |
| 181 | return; |
| 182 | |
| 183 | fb_assert(bcb->bcb_dirty_count > 0); |
| 184 | |
| 185 | bcb->bcb_dirty_count--; |
| 186 | QUE_DELETE(bdb->bdb_dirty); |
| 187 | QUE_INIT(bdb->bdb_dirty); |
| 188 | } |
| 189 | |
| 190 | static void flushDirty(thread_db* tdbb, SLONG transaction_mask, const bool sys_only); |
| 191 | static void flushAll(thread_db* tdbb, USHORT flush_flag); |
no test coverage detected