Code stuck compiling

I am writing code for my quadcopter and have been able to download it before, but for some reason it refuses to compile. It just sits there with the compile bar at 20%. I have left it for about 30 min with it still stuck at 20%.

MainProgram

#include "Control_Functions.h"

// Connect both Ground AND Signal wires to ESC input
int Chan1 = 3;  //Channel: 1 -- Aileron
int Chan2 = 9;  //Channel: 2 -- Elevator
int Chan3 = 10; //Channel: 3 -- Throttle
int Chan4 = 11; //Channel: 4 -- Rudder
int arm = 1000; // pulse width in microseconds for arming
int speedvalue = 1000; // pulse width in microseconds for operation  // TESTED (5/19/15) Equal to 1000 is idol || Greater than (possibly lower) 1150 is motor movement
int time = 0;

void setup() 
 {
   pinMode(Chan1, OUTPUT);
   pinMode(Chan2, OUTPUT);
   pinMode(Chan3, OUTPUT);
   pinMode(Chan4, OUTPUT);   

//VVVV----------USE ONLY WITH JUST ESC----------VVVV
/* It appears that the ESC will accept a range of values for the arming
sequence. This provides 10 pulses with a pulse width of 1000 us with
with a 20 ms delay between pulses. */

//   delay(8000); //Allow for battery to be pluged in
//
//
//   for (int count = 0; count < 10; count++){
//      digitalWrite(Chan1, HIGH);
//      delayMicroseconds(arm);
//      digitalWrite(Chan1, LOW);
//     delay(20);
//   }
//   
//      for (int count = 0; count < 10; count++){
//      digitalWrite(Chan2, HIGH);
//      delayMicroseconds(arm);
//      digitalWrite(Chan2, LOW);
//     delay(20);
//   }
//   
//      for (int count = 0; count < 10; count++){
//      digitalWrite(Chan3, HIGH);
//      delayMicroseconds(arm);
//      digitalWrite(Chan3, LOW);
//     delay(20);
//     
//      for (int count = 0; count < 10; count++){
//      digitalWrite(Chan4, HIGH);
//      delayMicroseconds(arm);
//      digitalWrite(Chan4, LOW);
//     delay(20);
//   }

//^^^^----------USE ONLY WITH JUST ESC----------^^^^   


}

void loop()
  {
    
    //FourMotor(Chan1, Chan2, Chan3, Chan4, 1000, 1000, 1000, 1000, 2500); //"Prime" esc's   
    
   delay(8000);
    
    BoardArm(Chan3, Chan4);
    
    delay(1500);
    
    SingleMotor(Chan3, 1140, 4000);
    
    //SingleMotor(Chan3, 1000, 4000);

  }

.h file

void SingleMotor(int escPin, int speed, int millisec)
{
  int stoptime = 0;

  time = millis();

  stoptime = time + millisec;
  
  while(true) //Needs to be in loop to provide complete wave forms
  {
    digitalWrite(escPin, HIGH);
    delayMicroseconds(speed);
    digitalWrite(escPin, LOW);
    delay(20);
   
    time = millis();
   
    if(time > stoptime)
    {
      break;
    }
  }
}


void FourMotor(int esc1, int esc2, int esc3, int esc4, int speed1, int speed2, int speed3, int speed4, int millisec)
{
  int stoptime = 0;

  time = millis();

  stoptime = time + millisec;
  
  while(true) //Needs to be in loop to provide complete wave forms
  {
    digitalWrite(esc1, HIGH);
    delayMicroseconds(speed1);
    digitalWrite(esc1, LOW);
    
    digitalWrite(esc2, HIGH);
    delayMicroseconds(speed2);
    digitalWrite(esc2, LOW);        
   
    digitalWrite(esc3, HIGH);
    delayMicroseconds(speed3);
    digitalWrite(esc3, LOW);
    
    digitalWrite(esc4, HIGH);
    delayMicroseconds(speed4);
    digitalWrite(esc4, LOW);
    
    time = millis();
   
    if(time > stoptime)
    {
      break;
    }
  }
}

void BoardArm(int esc1, int esc2)
{
  int millisec = 1500;
  
  int stoptime = 0;

  time = millis();

  stoptime = time + millisec;
  
  while(true) //Needs to be in loop to provide complete wave forms
  {
    digitalWrite(esc1, HIGH);
    delayMicroseconds(1086);
    digitalWrite(esc1, LOW);
    
    digitalWrite(esc2, HIGH);
    delayMicroseconds(1875);
    digitalWrite(esc2, LOW);        
   
    time = millis();
   
    if(time > stoptime)
    {
      break;
    }
  }
}

Any help?

If you are using 1.6.4, try it in 1.6.3.

I have noticed that 1.6.4 has a bug in the error detection that will cause the ide to just "hang".
Compiling in 1.6.3 will display the errors. Fix the errors and it will compile in 1.6.4

Why are you putting code in a header (.h) file? Code goes in .cpp files. header files are only for function prototypes, variable declarations, etc.

Which is probably what's leading to the problem ISANman is suggesting.

Also looks like you're using time to store millis(), but declared it as an int. should be declared as an unsigned long.

    if(time > stop time)

That code does not handle millis() rollover which will happen every 49 days (or few hours if you don't fix the declaration for time).