| 2051 | |
| 2052 | |
| 2053 | static int index_block_flush(void* ast_object) |
| 2054 | { |
| 2055 | /************************************** |
| 2056 | * |
| 2057 | * i n d e x _ b l o c k _ f l u s h |
| 2058 | * |
| 2059 | ************************************** |
| 2060 | * |
| 2061 | * Functional description |
| 2062 | * An exclusive lock has been requested on the |
| 2063 | * index block. The information in the cached |
| 2064 | * index block is no longer valid, so clear it |
| 2065 | * out and release the lock. |
| 2066 | * |
| 2067 | **************************************/ |
| 2068 | IndexBlock* const index_block = static_cast<IndexBlock*>(ast_object); |
| 2069 | |
| 2070 | try |
| 2071 | { |
| 2072 | Lock* const lock = index_block->idb_lock; |
| 2073 | Database* const dbb = lock->lck_dbb; |
| 2074 | |
| 2075 | AsyncContextHolder tdbb(dbb, FB_FUNCTION, lock); |
| 2076 | |
| 2077 | release_index_block(tdbb, index_block); |
| 2078 | } |
| 2079 | catch (const Firebird::Exception&) |
| 2080 | {} // no-op |
| 2081 | |
| 2082 | return 0; |
| 2083 | } |
| 2084 | |
| 2085 | |
| 2086 | static idx_e insert_key(thread_db* tdbb, |
nothing calls this directly
no test coverage detected