tc_acquire_table and tc_release_table are critical sections of table cache. Among other things, they update TABLE_SHARE::tdc.free_tables:
tc_acquire_table - pop TABLE object from free_tables
tc_release_table - push TABLE object to free_tables
Updating free_tables list is protected by global mutex. Since free_tables is per-share list we can protect it by per-share mutex instead.
This is simple intermediate change that improves table cache scalability in many loads.