Blocks created twice for a single page load In a template file I am using this code

$blocks= block_get_blocks_by_region('revel_card_dashboard');


To grab blocks for a region to render at specific parts of the template. This is causing the regions to be created twice.

Checking stack traces the first time the blocks are created is by drupal core. 

 2 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\includes\\module.inc',
    'line' =&gt; 799,
    'function' =&gt; 'call_user_func_array',
  ),
  3 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\modules\\block\\block.module',
    'line' =&gt; 854,
    'function' =&gt; 'module_invoke',
  ),
  4 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\modules\\block\\block.module',
    'line' =&gt; 674,
    'function' =&gt; '_block_render_blocks',
  ),
  5 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\modules\\block\\block.module',
    'line' =&gt; 318,
    'function' =&gt; 'block_list',
  ),
  6 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\modules\\block\\block.module',
    'line' =&gt; 268,
    'function' =&gt; 'block_get_blocks_by_region',
  ),
  7 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\includes\\common.inc',
    'line' =&gt; 5616,
    'function' =&gt; 'block_page_build',
  ),
  8 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\includes\\common.inc',
    'line' =&gt; 2583,
    'function' =&gt; 'drupal_render_page',
  ),
  9 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\includes\\common.inc',
    'line' =&gt; 2471,
    'function' =&gt; 'drupal_deliver_html_page',
  ),
  10 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\includes\\menu.inc',
    'line' =&gt; 531,
    'function' =&gt; 'drupal_deliver_page',
  ),
  11 =&gt; 
  array (
    'file' =&gt; 'C:\\xampp\\htdocs\\revel\\html\\index.php',
    'line' =&gt; 21,
    'function' =&gt; 'menu_execute_active_handler',


How can I grab the already created blocks instead of creating them a second time as the call up top seems to do?

Clarification: I do not want to simply cache the block because its important to update the block when the user revisits the page, but there is no point in updating it with time expensive methods twice a page view.
$blocks = $page['revel_card_dashboard'];


This line of code grabbed the blocks that had already been created by drupal's original passthrough.