How to clear or rebuild a cached block for a specific user? I have a block with the cache setting DRUPAL_CACHE_PER_USER.

I want to clear the cache when a user performs a specific action. I want to clear the cached block only for the acting user, keeping the block cache for all other users.

How can I do that in Drupal 7?
This data is stored in the block_cache bin under the cid format: 

&lt;MODULE_MACHINE_NAME&gt;:&lt;BLOCK_MACHINE_NAME&gt;:&lt;THEME_MACHINE_NAME&gt;:u.&lt;UID&gt;

Knowing that, you can build some wrapper function for cache_clear_all() that will delete any arbitrary UID's cached block:

function clear_user_block_cache($uid, $module = 'MYMODULE', $block = 'MYBLOCK', $theme = 'MYTHEME') {
  cache_clear_all("$module:$block:$theme:u.$uid");
}


You can invoke this function call whenever the user takes the relevant action.