<commit_before>package edu.vuum.mooca;

/**
 * @class SynchronizedQueueImpl
 *
 * @brief This is where you put your implementation code to to (1)
 *        create, (2) start, (3) interrupt, and (4) wait for the
 *        completion of multiple Java Threads.
 *
 *        Make sure to keep all the "TODO" comments in the code below
 *        to make it easy for peer reviewers to find them.
 */
public class SynchronizedQueueImpl extends SynchronizedQueue {
    // TODO - change this to true if you want to see diagnostic
    // output on the console as the test runs.
    static {
        diagnosticsEnabled = false;
    }
	
    protected void createThreads() {
        // TODO - replace the "null" assignments below to create two
        // Java Threads, one that's passed the mProducerRunnable and
        // the other that's passed the mConsumerRunnable.
        mConsumer = null;
        mProducer = null;
    }
    
    protected void startThreads() {
        // TODO - you fill in here to start the threads. More
        // interesting results will occur if you start the
        // consumer first.
    }

    protected void interruptThreads() {
        // TODO - you fill in here to interrupt the threads.
    }

    protected void joinThreads() throws InterruptedException {
        // TODO - you fill in here to wait for the threads to
        // exit.
    }
}            
<commit_msg>Enhanced the comments to clearly show how this relates to the Template Method pattern.<commit_after>package edu.vuum.mooca;

/**
 * @class SynchronizedQueueImpl
 *
 * @brief This is where you put your implementation code to to (1)
 *        create, (2) start, (3) interrupt, and (4) wait for the
 *        completion of multiple Java Threads.  This class plays the
 *        role of the "Concrete Class" in the Template Method pattern
 *        and isolates the code written by students from the
 *        underlying SynchronizedQueue test infrastructure.
 *
 *        Make sure to keep all the "TODO" comments in the code below
 *        to make it easy for peer reviewers to find them.
 */
public class SynchronizedQueueImpl extends SynchronizedQueue {
    // TODO - change this to true if you want to see diagnostic
    // output on the console as the test runs.
    static {
        diagnosticsEnabled = false;
    }
	
    protected void createThreads() {
        // TODO - replace the "null" assignments below to create two
        // Java Threads, one that's passed the mProducerRunnable and
        // the other that's passed the mConsumerRunnable.
        mConsumer = null;
        mProducer = null;
    }
    
    protected void startThreads() {
        // TODO - you fill in here to start the threads. More
        // interesting results will occur if you start the
        // consumer first.
    }

    protected void interruptThreads() {
        // TODO - you fill in here to interrupt the threads.
    }

    protected void joinThreads() throws InterruptedException {
        // TODO - you fill in here to wait for the threads to
        // exit.
    }
}            

{'fraction_non_alphanumeric': 0.06733897202342225, 'fraction_numerical': 0.002602472348731295, 'mean_word_length': 2.1997918834547345, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4630437', 'n_tokens_mistral': 798, 'n_tokens_neox': 778, 'n_words': 364}