summaryrefslogtreecommitdiff
path: root/Kokyu/DSRT_Sched_Queue_T.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Kokyu/DSRT_Sched_Queue_T.cpp')
-rw-r--r--Kokyu/DSRT_Sched_Queue_T.cpp285
1 files changed, 0 insertions, 285 deletions
diff --git a/Kokyu/DSRT_Sched_Queue_T.cpp b/Kokyu/DSRT_Sched_Queue_T.cpp
deleted file mode 100644
index 30845823aa1..00000000000
--- a/Kokyu/DSRT_Sched_Queue_T.cpp
+++ /dev/null
@@ -1,285 +0,0 @@
-/* -*- C++ -*- */
-/**
- * @file DSRT_Sched_Queue_T.cpp
- *
- * $Id$
- *
- * @author Venkita Subramonian (venkita@cs.wustl.edu)
- *
- */
-#ifndef DSRT_SCHED_QUEUE_T_CPP
-#define DSRT_SCHED_QUEUE_T_CPP
-
-#include "DSRT_Sched_Queue_T.h"
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if !defined (__ACE_INLINE__)
-//#include "DSRT_Sched_Queue_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(Kokyu,
- DSRT_Sched_Queue_T,
- "$Id$")
-
-namespace Kokyu
-{
-/*
-//@@VS: This is somehow not being recognized by MSVC, which results
-//in a link error. For now, the definition has been moved to the .h
-//file. Needs further investigation.
-
-template <class DSRT_Scheduler_Traits,
- class More_Eligible_Comparator,
- class ACE_LOCK>
-u_long
-Sched_Ready_Queue<DSRT_Scheduler_Traits,
- More_Eligible_Comparator,
- ACE_LOCK>::
-Guid_Hash::operator () (const Guid_t& id)
-{
- typename DSRT_Scheduler_Traits::Guid_Hash guid_hash;
- return guid_hash(id);
-}
-*/
-template <class DSRT_Scheduler_Traits,
- class More_Eligible_Comparator,
- class ACE_LOCK>
-int Sched_Ready_Queue<DSRT_Scheduler_Traits,
- More_Eligible_Comparator,
- ACE_LOCK>::
-current_size ()
-{
- return dispatch_items_prio_queue_.current_size ();
-}
-
-template <class DSRT_Scheduler_Traits,
- class More_Eligible_Comparator,
- class ACE_LOCK>
-int Sched_Ready_Queue<DSRT_Scheduler_Traits,
- More_Eligible_Comparator,
- ACE_LOCK>::
-most_eligible (DSRT_Dispatch_Item_var<DSRT_Scheduler_Traits>& item)
-{
- if (dispatch_items_prio_queue_.current_size () == 0)
- return -1;
-
- PRIO_QUEUE_ITERATOR start = dispatch_items_prio_queue_.begin ();
- PRIO_QUEUE_ENTRY &ent = (*start);
- item = ent.item ();
- return 0;
-}
-
-template <class DSRT_Scheduler_Traits,
- class More_Eligible_Comparator,
- class ACE_LOCK>
-int Sched_Ready_Queue<DSRT_Scheduler_Traits,
- More_Eligible_Comparator,
- ACE_LOCK>::
-find (Guid_t guid,
- DSRT_Dispatch_Item_var<DSRT_Scheduler_Traits>& found_item)
-{
- ACE_GUARD_RETURN (ACE_LOCK, mon, lock_, -1);
- RB_Tree_Dispatch_Item_Node* rb_tree_node;
-
- if (dispatch_items_hash_map_.find(guid, rb_tree_node) == -1)
- {
- return -1;
- }
- else
- {
- found_item = rb_tree_node->item ();
- return 0;
- }
-
- return 0;
-}
-
-template <class DSRT_Scheduler_Traits,
- class More_Eligible_Comparator,
- class ACE_LOCK>
-int Sched_Ready_Queue<DSRT_Scheduler_Traits,
- More_Eligible_Comparator,
- ACE_LOCK>::
-insert (DSRT_Dispatch_Item<DSRT_Scheduler_Traits>* item)
-{
- item->insertion_time (ACE_OS::gettimeofday ());
- DSRT_Dispatch_Item_var<DSRT_Scheduler_Traits> item_var(item);
-
- ACE_GUARD_RETURN (ACE_LOCK, mon, lock_, -1);
-
- RB_Tree_Dispatch_Item_Node* rb_tree_node;
- Guid_t guid = item->guid ();
-
-#ifdef KOKYU_DSRT_LOGGING
- ACE_hthread_t thr_handle = item->thread_handle ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) about to insert %d in sched queue\n",
- thr_handle));
-#endif
-
- if (dispatch_items_hash_map_.find (guid, rb_tree_node) == -1)
- {
-#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) %d not found in hashmap\n", thr_handle));
-#endif
- if (dispatch_items_prio_queue_.bind (item_var,
- item_var,
- rb_tree_node) == 0)
- {
-#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG, "(%t|%T): item bound in rbtree\n"));
-#endif
- if (dispatch_items_hash_map_.bind (guid, rb_tree_node) == 0)
- {
-#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG, "(%t|%T): item bound in hashmap\n"));
- ACE_DEBUG ((LM_DEBUG,
- "<===Hash Table contents Begin===>\n"));
- dispatch_items_hash_map_.dump ();
- ACE_DEBUG ((LM_DEBUG,
- "<===Hash Table contents End=====>\n"));
-#endif
- return 0;
- }
- }
- }
- else
- {
-#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) %d found in hashmap\n", thr_handle));
-#endif
- dispatch_items_hash_map_.unbind (guid);
- dispatch_items_prio_queue_.unbind (rb_tree_node);
-
-#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) %d removed from hashmap and rbtree\n", thr_handle));
-#endif
- if (dispatch_items_prio_queue_.bind (item_var,
- item_var,
- rb_tree_node) == 0)
- {
-#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) %d bound to rbtree\n", thr_handle));
-#endif
- if (dispatch_items_hash_map_.bind (guid, rb_tree_node) == 0)
- {
-#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) %d bound to hashmap\n", thr_handle));
- ACE_DEBUG ((LM_DEBUG,
- "<===Hash Table contents Begin===>\n"));
- dispatch_items_hash_map_.dump ();
- ACE_DEBUG ((LM_DEBUG,
- "<===Hash Table contents End===>\n"));
-#endif
- return 0;
- }
- }
- }
-
- return -1;
-}
-
-template <class DSRT_Scheduler_Traits,
- class More_Eligible_Comparator, class ACE_LOCK>
-int Sched_Ready_Queue<DSRT_Scheduler_Traits,
- More_Eligible_Comparator, ACE_LOCK>::
-remove (Guid_t guid)
-{
- ACE_GUARD_RETURN (ACE_LOCK, mon, lock_, -1);
- RB_Tree_Dispatch_Item_Node* rb_tree_node;
-
- if (dispatch_items_hash_map_.find(guid, rb_tree_node) == 0)
- {
- dispatch_items_hash_map_.unbind (guid);
- dispatch_items_prio_queue_.unbind (rb_tree_node);
-#ifdef KOKYU_DSRT_LOGGING
- ACE_DEBUG ((LM_DEBUG,
- "<===Hash Table contents Begin===>\n"));
- dispatch_items_hash_map_.dump ();
- ACE_DEBUG ((LM_DEBUG,
- "<===Hash Table contents End===>\n"));
-#endif
-
- return 0;
- }
-
- return -1;
-}
-
-template <class DSRT_Scheduler_Traits,
- class More_Eligible_Comparator,
- class ACE_LOCK>
-void Sched_Ready_Queue<DSRT_Scheduler_Traits,
- More_Eligible_Comparator,
- ACE_LOCK>::
-dump ()
-{
- ACE_GUARD (ACE_LOCK, mon, lock_);
- ACE_DEBUG ((LM_DEBUG, "(%t|%T):##########################\n"));
- if (dispatch_items_prio_queue_.current_size ())
- {
- PRIO_QUEUE_ITERATOR end_iter = dispatch_items_prio_queue_.end ();
- PRIO_QUEUE_ITERATOR iter;
-
- iter = dispatch_items_prio_queue_.begin ();
- while( iter != end_iter )
- {
- PRIO_QUEUE_ENTRY &ent = (*iter);
- DSRT_Dispatch_Item_var<DSRT_Scheduler_Traits>
- item_var = ent.item ();
- /*
- int guid;
- ACE_OS::memcpy (&guid,
- item_var->guid ().get_buffer (),
- item_var->guid ().length ());
-
- ACE_DEBUG ((LM_DEBUG, "(%t|%T):guid %d, thr_handle = %d\n",
- guid, item_var->thread_handle ()));
- */
- ++iter;
- }
- }
- ACE_DEBUG ((LM_DEBUG, "(%t|%T):##########################\n"));
-}
-
-template <class DSRT_Scheduler_Traits,
- class More_Eligible_Comparator,
- class ACE_LOCK>
-int Sched_Ready_Queue<DSRT_Scheduler_Traits,
- More_Eligible_Comparator,
- ACE_LOCK>::
-change_prio(int old_prio, int new_prio, int policy)
-{
- if (dispatch_items_prio_queue_.current_size ())
- {
- PRIO_QUEUE_ITERATOR end_iter = dispatch_items_prio_queue_.end ();
- PRIO_QUEUE_ITERATOR iter;
- int prio;
-
- iter = dispatch_items_prio_queue_.begin ();
- while( iter != end_iter )
- {
- PRIO_QUEUE_ENTRY &ent = (*iter);
- DSRT_Dispatch_Item_var<DSRT_Scheduler_Traits>
- item_var = ent.item ();
- ACE_OS::thr_getprio (item_var->thread_handle (), prio);
- if (prio==old_prio) {
- ACE_OS::thr_setprio(item_var->thread_handle (), new_prio, policy);
- }
- ++iter;
- }
- }
- return(0);
-}
-
-}
-
-#endif /* DSRT_SCHED_QUEUE_T_CPP */